Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с Commit в IB [D7, IB6.x, Firebird 1.0.2.908]


Orpheus ©   (2003-06-19 08:12:00) 

Здравствуйте, Мастера!
Делаю TIBTransaction.StartTransaction
Затем TIBSQL.ExecQuery (несколько INSERT-ов)
Затем TIBTransaction.Commit
(**)
Затем TIBQuery.ExecQuery (SELECT те самые INSERT-ed записи)
Записи не отображаются...
Делаю вместо (**) TIBDatabase.Disconnect; TIBDatabase.Connect;
тогда все работает.
Понимаю, что дело в кэше. Но как их отключить (а лучше не отключить, а сбросить в базу!!!) не знаю... Помогите, пожалуйста.


Zacho   (2003-06-19 09:03:00) [1]

И обязательнопочитай статьи на www.ibase.ru, особенно http://www.ibase.ru/devinfo/ibtrans.htm


Orpheus   (2003-06-19 08:56:00) [2]

Спасибо, помогло!


Alexandr   (2003-06-19 08:23:00) [3]

тебе эе сказали выставь ReadCommited вместо repaetableRead
а ты хвастаешься знанием VbScript


Orpheus   (2003-06-19 08:22:00) [4]

Там так и есть на самом деле (не пугайтесь - это реализация Automation server - логика работы программы прописана на VBScript):


procedure THTable.ExecSQL(const aSQL: WideString); safecall;
begin
Set_Active(false); // т.е. IBQuery.Active:= false;
Set_SQL(aSQL); // т.е. IBQuery.SQL.Text:= aSQL;
Set_Active(true); // т.е. IBQuery.Active:= true;
end;


Zacho   (2003-06-19 08:17:00) [5]


> Orpheus © (19.06.03 08:12)

Дело не в каком-то там кэше, а в уровне изоляции транзакций. Поставь ReadCommitted. И почитай статьи на http://www.ibase.ru/develop.htm


Наталия   (2003-06-19 08:16:00) [6]

При "SELECT те самые INSERT-ed записи"
нужно делать TIBQuery.Open, а не TIBQuery.ExecQuery


Наверх

Титульная страница Поиск, карта сайта Написать письмо