|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Взгляните на хранимую процедуру, пожалуйста
Опыта у меня очень мало, поэтому с синтаксисом знаком плохо.
Выдает ошибку -206 Subselect illegal in this context on line 1 Процедура в интербейз: Код:
Create procedure Zone_Insert(Zona VarChar(150), Pref Varchar(12), Price Double Precision, ID_Tarif int) AS Begin If (:Pref not in (Select Zone_Prefix from Zone)) then begin Insert into Zone(Zone_Prefix, Zone_Name) Values(:Pref, :Zona); insert into Orig_Price(Orig_PR, Zone_ID, Orig_Tarif_ID) Values(:Price, (Select Gen_ID(Gen_Zone, 0) from RDB$DATABASE), :ID_Tarif); end else begin update Orig_Price Set Orig_Pr=:Price where ORIG_TARIF_ID=:ID_Tarif and Zone_ID = (Select Zone_ID from ZOne where Zone_Prefix=:Pref); end end Последний раз редактировалось lmikle, 04.06.2011 в 06:53. |
#2
|
|||
|
|||
Разобрался. надо так, если кому понадобится:
Код:
Create procedure Zone_Insert(Zona VarChar(150), Pref Varchar(12), Price Double Precision, ID_Tarif int) AS Begin If (not exists(select * from Zone where zone_prefix=:pref)) then begin Insert into Zone(Zone_Prefix, Zone_Name) Values(:Pref, :Zona); insert into Orig_Price(Orig_PR, Zone_ID, Orig_Tarif_ID) Values(:Price, (Select Gen_ID(Gen_Zone, 0) from RDB$DATABASE), :ID_Tarif); end else begin update Orig_Price Set Orig_Pr=:Price where ORIG_TARIF_ID=:ID_Tarif and Zone_ID = (Select Zone_ID from ZOne where Zone_Prefix=:Pref); end end Последний раз редактировалось lmikle, 04.06.2011 в 06:53. |
#3
|
||||
|
||||
ммм. Мне кажется, или это не совсем Delphi?
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |