Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
9-91614
Antichacker
2003-02-04 19:02
2003.07.28
Прозрачные спрайты. Возможно ли это?


3-91657
Till
2003-07-06 13:29
2003.07.28
Date и Time в Оракле


3-91676
McSimm2
2003-07-07 09:56
2003.07.28
---|Ветка была без названия|---


6-91795
Tiro
2003-05-23 10:23
2003.07.28
Плагин для Apache


1-91767
Geek
2003-07-14 17:37
2003.07.28
Проблемы с массивом записей.




   Наверх