Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.47 MB
Время: 0.006 c
3-91631
DBDev
2003-07-04 14:17
2003.07.28
Попытка осуществления парр-ного потокобезопасного доступа к БД +


14-91831
five
2003-07-10 16:34
2003.07.28
работа в Москве (Delphi, PHP, Interbase)


14-91847
vidiv
2003-07-11 07:43
2003.07.28
Как убить процесс через некоторе время.....


14-91814
nick-from
2003-07-12 12:32
2003.07.28
кто-нибудь юзал сетевуху D-Link DFE-550TX


1-91704
AndSoft
2003-07-14 16:01
2003.07.28
Программное масштабирование картинки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский