![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запись данных в базу через IBX компоненты [D5, IB6.x]
Анатолий © (2002-03-07 07:51:00)Почему такая конструкция копмилится, но не работает :
(пишется знаение РР в поле VAL_TT таблицы SOSTT)
IBDateSet1.ModifySQL:=
update SOSTT
set
ADRESS = :ADRESS,
PARAM = :PARAM,
VAL_TT = :VAL_TT
where
ADRESS = :OLD_ADRESS and
PARAM = :OLD_PARAM and
VAL_TT = :OLD_VAL_TT
...
IBDataSet1.Open;
IBDataSet1.Edit;
IBDataSet1.FieldByName("Val_tt").AsInteger:=PP;
IBDataSet1.Post;
IBDataSet1.Close;
...
а такая конструкция :
...
IBTable1.Open;
IBTable1.Edit;
IBTable1.FieldByName("Val_tt").AsInteger:=PP;
IBTable1.Post;
IBTable1.Close;
...
работает.
Анатолий (2002-03-07 09:38:00) [1]ОлегЕ, и в этом случае возникает исключительная ситуация :
IBDateSet1.ModifySQL:=
update SOSTT
set
ADRESS = :ADRESS,
PARAM = :PARAM,
VAL_TT = :VAL_TT
where
ADRESS = :OLD_ADRESS and
PARAM = :OLD_PARAM and
VAL_TT = :OLD_VAL_TT
...
IBDateSet1.Prepare;
IBDateSet1.ParamByName("Val_tt").AsInteger:=PP;
IBDateSet1.ExecSQL;
Johnmen (2002-03-07 09:37:00) [2]>ОлегЕ : Причем здесь ExecSQL , если человек работает с модифицируемым IBDateSet ???
>Анатолий : Я думаю, что не проходит по причине отсутствия значений у параметров OLD_...А вообще параметры в ModifySQL и иже с ним берутся из значений текущей записи и записи из НД, на который указывает IBDateSet.DataSource (может не быть).
Deniz (2002-03-07 09:18:00) [3]Вместо IBDataSet я использую связку IBQuery + IBUpdateSQL.
Пока проблем не было.
Удачи.
ОлегЕ (2002-03-07 09:13:00) [4]Для UPDATE и INSERT нужно вызывать не OPEN, а ExecSQL.
IBDateSet1.ModifySQL:=
update SOSTT
set
ADRESS = :ADRESS,
PARAM = :PARAM,
VAL_TT = :VAL_TT
where
ADRESS = :OLD_ADRESS and
PARAM = :OLD_PARAM and
VAL_TT = :OLD_VAL_TT
IBDateSet1.Prepare;
IBDateSet1.ParamByName("Val_tt").AsInteger:=PP;
IBDateSet1.ExecSQL;
Анатолий (2002-03-07 09:01:00) [5]Как только по тексту ставишь :
...
IBDataSet1.Post;
...
возникает исключительная ситуация, а если
...
IBDataSet1.Edit;
IBDataSet1.FinNext;
IBDataSet1.Prior;
...
ничего не пишется, но и не возникает исключительной ситуации.
Alexandr (2002-03-07 08:30:00) [6]а какая ошибка-то?