![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странное поведение программы (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 ?