![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменения в базе [D6, FireBird 1.5]
Koala © (2004-07-23 19:02:00)В чем глюк???
Провожу изменения в базе...
With DM do
begin
try
pFIBTransactionWrite.StartTransaction;
Case Operation of
uoAdd : begin
pFIBSPr_IDriver.Prepare;
pFIBSPr_IDriver.ParamByName'IN_FIO_DRIVER').AsString := Trim(Edit_FIODriver.Text);
pFIBSPr_IDriver.ParamByName('IN_CERTIFICATE').AsString := Trim(Edit_NumDriver.Text);
pFIBSPr_IDriver.ParamByName('IN_DATE_EDIT').AsDateTime := Now;
pFIBSPr_IDriver.ExecProc;
end;
pFIBTransactionWrite.Commit;
except
pFIBTransactionWrite.Rollback;
end;
в датасете все отображается нормально, но когда закрываю базу и открываю заново, все изменения пропадают...
что не так делаю????
VID (2004-07-24 22:52:00) [1]Yaral (24.07.04 22:06) [13]
ну когда база в РО, то обычно при попытке подключиться к ней, уже возникает ерррор.
Koala, если не секрет, скинь скрипт базы данных мне на vid@endimus.ru, если не умеешь скрипт добывать то запакуй хотя бы сам файл БД в рар, и пришли (главное что бы больше 300-400кб не занимал). Интересно стало...
Yaral (2004-07-24 22:06:00) [2]Ну это глюк! Тут можно создать новую базу и попробовать в ней если это не поможет то переустоновить FB желательно с другого дистрибутива. Также можно посмотреть может база в состоянии read only хотя я думаю что возникла бы ошибка.
Koala (2004-07-24 21:57:00) [3]вот и мне не понятно???????.......
Yaral (2004-07-24 21:45:00) [4]Как после подтверждения транцакции удаленные записи не удаляются т.е. появляются снова?
Koala (2004-07-24 21:41:00) [5]В IBExpert удаляю записи, затем подтверждаю Commit, данные не сохраняются...
Yaral (2004-07-24 20:52:00) [6]Значит транзакция не прошла. Проверь в pFIBSPr_IDriver в свойстве Transaction стоит именно pFIBTransactionWrite, а то там может стоять другая и получается что стартуешь pFIBTransactionWrite и подтвержаешь ее но она никакого отношения к pFIBSPr_IDriver не имеет. В этом случаее Хранимая процедура выполнится но изменения из буфера клиента в базу не попадут. Поэтому в приложении данные видны а после закрытия исчезают.
Anatoly Podgoretsky (2004-07-24 20:44:00) [7]Это означает, что ты данные не заносишь в базу, а хранишь локально в этом самом DBGrideEh
Koala (2004-07-24 20:43:00) [8]В IBExpert-е нет почему-то, а в DBGrideEh да...
закрываю форму открываю заново, есть,з закрываю приложение открываю нет...
Yaral (2004-07-24 20:35:00) [9]В IBConsole или IBExpert-е данные не отображаются?
Koala (2004-07-24 20:20:00) [10]Параметры транзакции pFIBTransactionWrite:
write
nowait
rec_version
read_committed
Что я не сделал????
Я только учусь.......
Yaral (2004-07-24 20:02:00) [11]Попробуй посмотреть изменения после вставке в базу к примеру в IBConsole или IBExpert-е если транзакция прошла успешно то изменения отобразяться и там => если они там не отобразились то нужно смотреть правильность настройки транзакций. Если изменения отображаются в IBConsole а после закрытия базы исчезают то это вообще хана!
Koala (2004-07-24 19:43:00) [12]В том то и дело, что все проходит без ошибки изменения в базе вижу, но после закрытия базы и открытия заново, все изменения пропадают... Обыдно-да... :о(
Yaral (2004-07-24 19:34:00) [13]Нужно правильно настройть все компоненты доступа к данным.
Для начала проверить что в pFIBSPr_IDriver выбрана именно pFIBTransactionWrite.
Затем после except разместить ShowMessage('Ошибка') или трассировщиком пройти, а то если в try Except возникнет ошибка то никаких сообщений не последует а транзакция просто откатится.
Koala (2004-07-24 18:00:00) [14]Удалено модератором
Примечание: Создание пустых сообщений