Форум: "Базы";
Текущий архив: 2003.07.28;
Скачать: [xml.tar.bz2];
ВнизИзменение хранимой процедуры Найти похожие ветки
← →
Сергей Ч (2003-07-07 12:01) [0]Добрый день! Хочу изменить хранимую процедуру из своего приложения. Использую IBQuery. При ExecSQL ругается на строчку "SELECT XX FROM XXX INTO :TMP" видимо считая :TMP параметром. Помогите, как это можно сделать?
← →
Alexandr (2003-07-07 12:07) [1]paraMCheck:=false
← →
Zacho (2003-07-07 12:07) [2]TIBQuery.ParamCheck:=false; - решит эту проблему
← →
Edward (2003-07-07 12:10) [3]Что значит: Хочу изменить хранимую процедуру из своего приложения? :TMP - это параметр, до ExecSQL ему нужно присвоить значение. Все переменные с двоеточием будут являться параметрами. А если изменить процедуру надо: ALTER PROCEDURE.
← →
Edward (2003-07-07 12:13) [4]
IBQuery2.SQL.Clear;
IBQuery2.SQL.Add("INSERT INTO COUNTRY (NAME, CAPITAL, POPULATION)");
IBQuery2.SQL.Add("VALUES (:Name, :Capital, :Population)");
IBQuery2.Params[0].AsString := "Lichtenstein";
IBQuery2.Params[1].AsString := "Vaduz";
IBQuery2.Params[2].AsInteger := 420000;
IBQuery2.ExecSQL;
← →
Zacho (2003-07-07 12:17) [5]
> Edward (07.07.03 12:10)
В данном случае :TMP - это не параметр запроса, а переменная в хранимой процедуре. ParamCheck:=false нужно именно для выполнения запросов DDL (а не DML с параметрами !), в которых могут встречаться конструкции, синтаксически аналогичные параметрам, но на самом деле таковыми не являющимися.
← →
Edward (2003-07-07 12:27) [6]Понятно, это текст хранимой процедуры, не сразу сообразил, что он спрашивает, спасибо Zacho © (07.07.03 12:17), за подробное объяснение сути вопроса! :-))
← →
Сергей Ч (2003-07-07 13:23) [7]Zacho © (07.07.03 12:07)
TIBQuery.ParamCheck:=false; - решит эту проблему
Попробовал - выдаёт ошибку XSQLDA index out of range
← →
Zacho (2003-07-07 13:30) [8]
> Сергей Ч (07.07.03 13:23)
Черт знает, должно работать. Возможно, баг в твоей версии IBX, попробуй поставить последнюю (или наоборот, одну из предидущих). Еще попробуй вместо TIBQuery использовать TIBSQL, хотя по идее должно быть то же самое.
← →
Сергей Ч (2003-07-07 13:33) [9]C TIBSQL тоже самое
← →
Johnmen (2003-07-07 14:10) [10]>Сергей Ч
То есть, делается попытка выполнить с помощью IBQuery такую команду ALTER PROCEDURE .... ?
Не пройдет. Т.к. Available in DSQL, and isql.
И второй момент - в IBX имеют место глюки, в частности с областью XSQLDA. Про это можно почитать на ibase.ru (если не запамятовал...:))
← →
Zacho (2003-07-07 14:21) [11]
> Johnmen © (07.07.03 14:10)
> То есть, делается попытка выполнить с помощью IBQuery такую
> команду ALTER PROCEDURE .... ?
> Не пройдет. Т.к. Available in DSQL, and isql.
То есть работать все-таки должно. По крайней мере на BDE с TQuery работало у меня отлично, а вот на IBX не пробовал, уже несколько лет все изменения метаданных делаю только скриптами. Но по идее должно и в IBX работать, так что наиболее вероятно - баг в IBX.
← →
Сергей Ч (2003-07-07 14:39) [12]Спасибо всем! после апдэйта IBX заработало с TIBSQL
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c