![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
SET TERM !! ;
CREATE PROCEDURE find_children (lastname varchar(30)) RETURNS (idchild integer, lastname varchar(30), age integer, tall integer, weight integer, gibkost integer, plastika integer, jump integer, sluh integer, idteacher integer) AS BEGIN SELECT idchild, lastname, age, tall, weight, gibkost, plastika, jump, sluh, idteacher FROM children WHERE lastname=:lastname into :idchild, :lastname, :age, :tall, :weight, :gibkost, ![]() :sluh, :idteacher; SUSPEND; END !! SET TERM ; !! Почему оно не работает? Оно мне пишет кучу страшніх слов: Unsuccessful metadata update STORE RDB$PROCEDURE_PARAMETERS failed attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_18" БД - Interbase |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
он тебе пишет что у тебя два lastname (один на входе, другой на выходе). или переименуй или подумай, а нужно ли это поле возвращать?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Да, вы правы, когда я убрала его из списка возвращения, то материться перестало, но желательно его все-таки возвращать... А если я переименовываю его на входе, то пишет про неизвестный столбец.... Как правильно переименовать? Или это в БД надо делать?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
если на входе переименуешь, то надо тут поменять: WHERE lastname=:<НовоеИмя>
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
SET TERM !! ;
alter PROCEDURE find_children (c_lastname varchar(30)) RETURNS (idchild integer, lastname varchar(30), age integer, tall integer, weight integer, gibkost integer, plastika integer, jump integer, sluh integer, idteacher integer) AS BEGIN SELECT idchild, lastname, age, tall, weight, gibkost, plastika, jump, sluh, idteacher FROM children WHERE lastname=:c_lastname into :idchild, :lastname, :age, :tall, :weight, :gibkost, lastika, :jump, :sluh, :idteacher; SUSPEND; END !! SET TERM ; !! Так теперь оно пишет: No active connection |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
ну у тебя нет соединения с базой видимо
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
есть...точно
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
а почему, кстати SET TERM !! ; ? там же вроде надо SET TERM ^ ; хотя я в IBExpert сколько хранимок не писал, ни разу Set Term не юзал... и почему END !! ? мы же еще не вернули назад этот разделитель... А так ошибка вроде из-за соединения, т.е. из-за его отсутствия...
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
SET TERM !! ; = SET TERM ^ ; - это абсолютно не имеет значения. А END !! всегда ставиться вконце, т.к. мы написали SUSPEND, то значит процедура уже должна была выполниться и все вернуть
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
я говорил не про само наличие end, а о том, что после него !!, а не ;
ЗЫ. просто не знаю че за хрень, вот и придираюсь ко всему подряд ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранимая процедура не работает! | Только_Учусь | SQL, базы данных | 6 | 08.09.2008 09:22 |
Процедура не работает | Михаил Юрьевич | Общие вопросы Delphi | 4 | 03.06.2008 07:22 |
Хранимая процедура. | nimf | БД в Delphi | 2 | 22.04.2008 13:16 |
процедура | Sergik1977 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 28.10.2007 16:36 |
FHandle - говорит что нет, хотя эта же процедура успешно работает в модуле Dialogs, о | mrandrey | Общие вопросы Delphi | 2 | 08.06.2007 15:21 |