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

Вниз

Запись данных в базу через IBX компоненты   Найти похожие ветки 

 
Анатолий   (2002-03-07 07:51) [0]

Почему такая конструкция копмилится, но не работает :
(пишется знаение РР в поле 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;
...
работает.


 
Alexandr ©   (2002-03-07 08:30) [1]

а какая ошибка-то?


 
Анатолий   (2002-03-07 09:01) [2]

Как только по тексту ставишь :
...
IBDataSet1.Post;
...
возникает исключительная ситуация, а если
...
IBDataSet1.Edit;
IBDataSet1.FinNext;
IBDataSet1.Prior;
...
ничего не пишется, но и не возникает исключительной ситуации.


 
ОлегЕ   (2002-03-07 09:13) [3]

Для 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;


 
Deniz ©   (2002-03-07 09:18) [4]

Вместо IBDataSet я использую связку IBQuery + IBUpdateSQL.
Пока проблем не было.
Удачи.


 
Johnmen ©   (2002-03-07 09:37) [5]

>ОлегЕ : Причем здесь ExecSQL , если человек работает с модифицируемым IBDateSet ???
>Анатолий : Я думаю, что не проходит по причине отсутствия значений у параметров OLD_...А вообще параметры в ModifySQL и иже с ним берутся из значений текущей записи и записи из НД, на который указывает IBDateSet.DataSource (может не быть).


 
Анатолий   (2002-03-07 09:38) [6]

ОлегЕ, и в этом случае возникает исключительная ситуация :

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;




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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
14-305
Lord Vader
2002-02-20 04:59
2002.04.01
RUNDLL32.EXE - Перезагрузить компьютер в режиме MS-DOS


14-319
MBo
2002-02-12 14:20
2002.04.01
что за значки в ответах вместо копирайта?


14-290
Kozhanov
2002-02-15 16:05
2002.04.01
Windows XP


3-5
sniknik
2002-03-05 16:27
2002.04.01
Обновляемый запрос


1-149
Просто чел
2002-03-22 00:46
2002.04.01
КАК СОЗДАТЬ MEMO НА СТРАНИЧКЕ TabSheet