Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Не обновляется БД |
Автор: 1122 22.6.2010, 06:48 |
Есть приложение написанное на делфи в дизайн-тайме. Пользуюсь компонентами библиотеки EhLib (DBGridEh, DBEditEh, IBXDataDriverEh, MemTableEh, DataSource и MemTableEh). Сервер FireBird 2.0 На форму кинул IBDatabase и IBTransaction, подключил их к базе, отображение в гриде есть. Для работы с базой использую DBNovigator. Пытаюсь изменить информацию в базе или добавить... в гриде все добавляет и изменяет, а в базе нет, и соответственно после перезапуска приложения грид тоже сбрасывается. Только начал изучать БД. Подскажите плиз в чем может быть ошибка! Спасибо! |
Автор: Frees 22.6.2010, 07:10 |
IBTransaction.Commit делал? |
Автор: Akella 22.6.2010, 09:37 |
1122, ты только не спрашивай, что такое транзакции и с чем их готовят ![]() |
Автор: Данкинг 22.6.2010, 09:49 |
В неподтверждённой транзакции. ![]() |
Автор: 1122 22.6.2010, 14:12 | ||
Добавил в обработчик события кнопки добавления: Form3.IBtransaction1.commit Все равно не работает. Да и так пробовал:
Еще примечательно то, что на это же форме есть еще один грид, куда выводится отсортированная информация из таблице, куда я пытаюсь добавить. Выводится в этот грид инфа с помощью IBQuery, который обращается к базе. Из чего можно сделать вывод, что информация все же до базы дошла, но как только приложение закрывается все исчезает. Коммит не помог :( Или я что-то не так делаю? Я создал для всех форм с гридами одну IBDatabase и IBTransaction на отдельной форме и везде в uses'ах подключил модуль этой формы. Эти компоненты всегда активны и связь с базой есть. Хелп! :( |
Автор: Keeper89 22.6.2010, 15:21 | ||
Вот и зачем новую начинать? Подтвердите уже имеющуюся. |
Автор: 1122 22.6.2010, 16:24 | ||
"Подтвердите уже имеющуюся" Так и сделал.
Из 4-5 экспериментальных добавлений 1 (один) раз все же добавление произошло, с таким кодом!!! Не могу понять почему! Теперь я совсем в замешательстве. Что не так в коде? И еще... в Transaction properties надо выбрать Read commited ? У пробовал и с Read commited и вообще без ничего. Эффект один. |
Автор: Keeper89 22.6.2010, 19:56 |
А через что происходит апдейт? Я просто не вижу выполнения запроса или связки Edit/Post. |
Автор: Данкинг 22.6.2010, 20:43 |
А если не извращаться со всякими .UpdateSQL, а использовать обычный IBQuery? |
Автор: Akella 23.6.2010, 14:42 |
Советую прочитать о работе транзакций, о принципе программирования клиент-серверных приложений и как вообще работать с транзакциями. Посмотреть примеры. Добавлено через 17 секунд Иначе так и будет тыкаться, как слепой котёнок. Добавлено через 49 секунд Извини за равнение. Не ради того, чтобы обидеть или оскорбить, просто пример удачный ![]() |
Автор: Моряк007 24.6.2010, 20:50 |
Таже проблема. Обновляется только insert, а delet и edit нет((( Буду рад если кто подскажет. Транзакцию завершал. |
Автор: Akella 25.6.2010, 08:46 |
Ты сам-то понял, что написал? |