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

Вниз

IBDataSet error   Найти похожие ветки 

 
Jaxtor ©   (2003-04-14 15:59) [0]

Помогите, мастера, пожалуйста!!!!
Из-за чего возникает ошибка - Invalid token "returning_values"?
Как ее обойти?

with qrPrihNaklInsert do begin

if Active then Close;

with SelectSQL do begin
Clear;
Add("execute procedure saveprod_proc :ProdId returning_values :SaveProdId");
Add("insert into SAVEPR_ATR(SAVEPRODID, COUNTRYID) values (:SaveProdID,1)");
Add("insert into serialno(saveprod_atrid,SerialNo) values (GEN_ID(GEN_SAVEPR_ATR,0),NULL)");
Add("insert into stockitem(stockid,saveprod_atrid,Quantity) values (:stockid,GEN_ID(GEN_SAVEPR_ATR,0),0)");
Add("insert into stockitemsn(serialnoid,stockitemid) values (gen_id(gen_serialno,0),gen_id(gen_stockitem,0))");
Add("insert into naklitem(naklid,saveprod_atrid,warantyid) values (:NaklID,GEN_ID(GEN_SAVEPR_ATR,0),2)");
Add("insert into naklsn(serialnoid,naklitemid) values (gen_id(gen_serialno,0),gen_id(gen_naklitem,0))");
end;//with SelectSQL
ParamByName("ProdId").AsInteger:=102877;
ParamByName("StockID").AsInteger:=3;
ParamByName("NaklID").AsInteger:=806;

ExecSQL;
end;//with qrPrihNaklInsert


 
Соловьев ©   (2003-04-14 16:03) [1]

что-то ты насовал всего в одну бедную компоненту....


 
Жук ©   (2003-04-14 16:04) [2]

Ой ! Мама...


 
Соловьев ©   (2003-04-14 16:08) [3]

зачем для процедуры IBDataset?
Обычный квери подойдет:
Select * from Procedure (:p1, :p2)


 
Jaxtor ©   (2003-04-14 16:15) [4]

Да была у меня хранимая процедура под это дело... Начала ругаться из-за ограничений ссылочной целостности.
У меня гл. таблица - Nakl, подчиненная - NaklItem. Соответственно
если в Nakl нет соответствующей записи, то в NaklItem ничего вставить нельзя. Хотел это обойти, используя вышеприведенный код.


 
Соловьев ©   (2003-04-14 16:17) [5]


> если в Nakl нет соответствующей записи, то в NaklItem ничего
> вставить нельзя

так вставь сначала в подченненную. Смысл вставлять то чего нет в главной? Фантомы будут...


 
Соловьев ©   (2003-04-14 16:17) [6]


> если в Nakl нет соответствующей записи, то в NaklItem ничего
> вставить нельзя

так вставь сначала в главную. Смысл вставлять то чего нет в главной? Фантомы будут...
Сорри...


 
Jaxtor ©   (2003-04-14 16:22) [7]

А у меня алгоритм такой:
вставить запись сначала в подчиненную таблицу, потом в главную, а
затем сделать CommitRetaining для главной, а потом для подчиненной.


 
Соловьев ©   (2003-04-14 16:27) [8]

А что тебе мешает сделать наоборот?


 
Jaxtor ©   (2003-04-14 16:33) [9]

Задача такая стоит у меня.
Сначала нужно мне добавить позиции по накладной (таблица NaklItem), а затем
другие параметры таблица(Nakl). Собственно ссылочную целостность
устанавливал не я, а другой программер.


 
samalex   (2003-04-14 16:34) [10]

; не пробовал в конце каждого запроса ставить? Как IB будет отличать команды? И вообще, напиши ХП с параметрами, у IB такие большие возможности...


 
Jaxtor ©   (2003-04-14 17:04) [11]

; не помогает!!!!


 
Zacho ©   (2003-04-15 09:06) [12]

Ну что я могу сказать... Значит, алгоритм у тебя не правильный, если он не соответствует бизнес-правилам, определенным для твоей БД. Подумай, например, а если между Commit"ом для главной таблицы и Commit"ом для подчиненной произойдет какой-либо сбой ?
И получиться накладная с заголовком, но без позиций. В твоей системе такое допустимо ? Вообще, подобные операции надо делать в одной транзакции. А если тебе очень уж необходимо сначало создавать записи для подчиненной таблицы, а только потом - для главной, то имхо единственный правильный способ - делать это на клиенте (например, с помощью CachedUpdates) а потом уже вставлять в базу в одной транзакции и в нормальном порядке, т.е. сначало - в главную, потом - в подчиненную


 
Alexandr ©   (2003-04-15 09:12) [13]

это все бред какой-то....
И где вы такую траву берете?



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-530
Антох
2003-04-21 02:11
2003.05.01
Люди! Вопрос по поводу заголовка окна с бордюром bsToolWindow


6-661
Anton Tsvilikh
2003-03-07 16:32
2003.05.01
Как Послать сообщения на все компьютеры локальнй сети?


1-607
Sluggard
2003-04-17 01:10
2003.05.01
F1Book вкладка ActiveX - Загрузка файла


14-706
Тих
2003-04-10 22:38
2003.05.01
С круглой стамеской и розовой леской


3-451
DSR
2003-04-13 16:23
2003.05.01
Как снять выделение в DBGrid