Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.28;
Скачать: CL | DM;

Вниз

Изменение хранимой процедуры   Найти похожие ветки 

 
Сергей Ч   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
7-91932
Leks
2003-05-16 22:11
2003.07.28
И снова СОМ порт...


1-91726
LKJJ
2003-07-14 14:36
2003.07.28
Как сделать полупрозрачную форму?


14-91851
acsoft
2003-07-11 06:48
2003.07.28
Слышал, что при помощи UPX можно еще и зашифровать exe. Как это с


3-91663
zks
2003-07-01 04:10
2003.07.28
SQL запрос


3-91686
xmrz
2003-07-06 15:36
2003.07.28
Соединение с IB