Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

TIBDataSet.Refresh   Найти похожие ветки 

 
Vasilisk   (2006-04-20 00:18) [0]

Delphi 7. Interbase 6.1

Есть TIBDataSet. В котором свойства выглядит так
SelectSQL
SELECT
 ID,
 field1,
 field2,
 field3
FROM
 VW_VIEW

ModifySQL
SELECT
 ID,
 field1,
 field2,
 field3
FROM
 VW_VIEW
WHERE
 ID = :old_id

InsertSQL
EXECUTE PROCEDURE sp_e_ins(
 :field1
)

Идея следующая:
 ID и field3 заполняются в тригере (один по генератору, а второй как Now), а field2 джойнится во вьюхе из другой таблицы по полю field1.

Есть DBGrid (ReadOnly), связанный с этим датасетом, а кроме этого есть такой кусок кода
DataSet.Insert;
DataSet.FieldByName("field1").AsInteger := Val;
DataSet.Post;

Так вот, после этого в Grid"е добавляется одна запись где заполнено только поле field1.

Вызов Refresh после Post не имеет результата. Перенос генератора с сервера на клиент не желательна, но тоже не приносит никакой пользы. Единственное, что помогает - Close/Open, но это неправильно, т.к. в датасете может быть порядка 10 тысяч записей.

Что делать, чтобы заставить Refresh работать?

PS Все происходит в одной транзакции. Вызов между Post и Refresh CommitRetaining тоже не спасает.


 
Johnmen ©   (2006-04-20 09:16) [1]

Так это происходит потому, что рефрешу неоткуда взять значение ключа для обновления одной записи. Кстати, а где сам РефрешСКЛ???
Поэтому грамотный выход - получить значение генератора джля ID, а потом вставить его в инсерте.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1147962627
ArtemESC
2006-05-18 18:30
2006.06.11
Как узнать существует ли почта, связанная с данным Mail ом?


2-1148238043
Ray
2006-05-21 23:00
2006.06.11
onClick и проблемы таскания компонентов


4-1142502339
balepa
2006-03-16 12:45
2006.06.11
Обмен данными между процессами


2-1148273168
petvv
2006-05-22 08:46
2006.06.11
Пустые поля после выполнения запроса


15-1147939540
kozhanov
2006-05-18 12:05
2006.06.11
Проверка орфографии