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

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

Странное поведение программы (DBGrid) [D7, firebird 1.0]


пустойчайник ©   (2003-12-16 12:25:00) 

Всем привет. Извиняюсь за длинный и нудный вопрос.
Есть CLX приложение. На нем стоят следующие компоненты: IBDatabase, IBTransaction (связан с IBDatabase), IBQuery (связан с IBDatabase и IBTransaction), DataSource (связан с IBQuery), и DBGrid (связан с DataSource). В IBQuery прописан простейший SQL запрос (select c параметром). Все нормально компилируется, приложение цепляется к базе, выполняет запрос, показывает его в DBGrid.
Выполняю через другой IBQuery запрос на обновление (update с параметрами), все нормально выполняется, данные на сервере обновляются, но в DBGrid-е не меняются. Делаю Dbrid-у Refresh, все равно не меняются. Тогда, пытаю закрыть и открыть IBQuery заново:

IBQuery.Close;
Application.ProcessMessages;
IBQuery.ParamByName("IDORG").AsInteger := Org;
if not IBQuery.Prepared then IBQuery.Prepare;
IBQuery.Open;
IBQuery.Last;
IBQuery.First;

Данные все равно не меняются.
Но если закрыть программу совсем и запустить, по-новой, загрузятся обновленные данные.
В чем я не прав.


sunrider   (2003-12-16 21:57:00) [1]

Tut est" odin prikol esli ispol"zovat" Delphiiskie komponenti IB
tranzaktsciu gelatel"no startovat" iavno, i zavershat" toge.
Pered obovleniem :
if not in IBTransaction.Active then
IBTransaction.StartTransaction;
--- Kod zaprosa ----
IBTransaction.Commit;
Nu i estestvenno obnovit" dannue posle update


HSolo   (2003-12-16 14:43:00) [2]

> Vemer © (16.12.03 13:11) [4]
Это хорошо, но мало :)


Vemer   (2003-12-16 13:11:00) [3]

IBTransaction.Commit / CommitRetaining - это для уменьшения бъема изучаемого материала.


пустойчайник   (2003-12-16 12:37:00) [4]

Первый раз слышу :) Спасибо. Пошел читать.


Vlad   (2003-12-16 12:29:00) [5]


> Делаю Dbrid-у Refresh,

Не надо делать рефреш DBGrid"у.
Про транзакции и уровни изоляции что нибудь слышали ?
Подозреваю дело в этом.


HSolo   (2003-12-16 12:27:00) [6]

Проверьте уровень изоляции транзакции. Snapshot ?


Наверх

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