Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх









Память: 0.85 MB
Время: 0.044 c
1-632
hagen
2003-04-19 16:04
2003.05.01
Как запустить exe-файл из своего приложения


14-750
Lion_xai
2003-04-14 15:44
2003.05.01
Connect to .....


7-821
vbazik
2003-03-07 01:11
2003.05.01
работа с GPS


7-822
Opera
2003-03-12 15:54
2003.05.01
Вин дир


6-659
Строитель
2003-03-05 14:23
2003.05.01
Browser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский