Код: Выделить всё
СREATE PROCEDURE ADDNEWS (
SUBJECT VARCHAR(60),
TEXT BLOB SUB_TYPE 1 SEGMENT SIZE 400,
AUTOR VARCHAR(20))
AS
DECLARE VARIABLE AUTORID INTEGER;
begin
SELECT E.TABNAMBER FROM EMPLOYEE E JOIN SCOOLPEOPLE S
ON E.peopleid = S.peopleid
WHERE UPPER(S.login) = UPPER(:autor)
INTO :autorid;
INSERT INTO advertisement (title, advertisementtext, tabnamber) VALUES (:subject, :text, :autorid);
SUSPEND;
end
Код: Выделить всё
EXECUTE PROCEDURE addnews ('selena', 'qqqqqqq', 'aaaaaaaaaaaaaa')
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal error.
Транзакция откачена...
Если посмотреть в логах IBMonitor, то при выполнении процедуры непосредственно из редактора SP в IBExpert в логе создаётся запись "EXECUTE PROCEDURE addnews (?, ?, ?)", а если из скрипта, или через ADO, то EXECUTE PROCEDURE addnews ('selena', 'qqqqqqq', 'aaaaaaaaaaaaaa')...
Поэтому я думаю, что дело в том, что входные параметры имеют текстовые значения... Хотя формат полей в таблице для вставки совпадает с форматом входных параметоров процедуры.
Может быть что-то где-то нужно конвертировать? Я поэкспериметировал и понял, что если формат входящих параметров процедуры числовой, то проблем не возникает... Но мне необходимы текстовые.
Если кто-нибудь сталкивался с такой проблемой, буду весьма благодарен за подсказку...[/code]