Вниз
Скачать: CL | DM;

Как програмно поменять ограничитель SET TERM   Найти похожие ветки 

← →
Basic ©   (2003-03-23 01:08) [0]

Как програмно поменять ограничитель SET TERM

Надо внести в базу данных хранимую процедуру, но предварительно по правилам
поменять ограничитель, в ISQL все отладил, начал переносить в делфи, ругается
говорит синтаксическая ошибка
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 4
TERM

А без нее не пропускает создание хранимой процедуры, ей не нравится ;

текст в делфях
IBTransaction1.StartTransaction;
IBsql1.SQL.Clear;
IBsql1.SQL.add("SET TERM ^ ");
IBsql1.ExecQuery;
IBTransaction1.Commit;


← →
kaif ©   (2003-03-23 02:27) [1]

SET TERM это не команда SQL. Это команда для парсера скрипта, который разбирает скрипт на отдельные команды и посылает их по одной на сервер.
Так что для того, чтобы поместить процедуру на сервер нужно просто вписать ее текст (буквально) без всяких SET TERM в
IBSQL.SQL и выполнить ExecQuery.
Разумеется, это может быть текст только одной отдельно взятой процедуры. В конце текста терминатор не нужен.
Например, вписываешь:

CREATE PROCEDURE AAA
RETURNS(ID INTEGER, NAME VARCHAR(20))
AS
BEGIN
FOR SELECT ID,NAME FROM BBB
INTO :ID,:NAME
DO SUSPEND;
END

Здесь имеется терминатор ";" в тексте процедуры, но никакого терминатора в конце текста (типа ^), так как здесь только одна процедура и ее не нужно отделять от других, как это приходится делать в скрипте, состоящем из множества команд.




← →
Сергєєв Володимир ©   (2003-03-23 04:22) [2]

Просетапь IBX6.05 и не страдай ......

Там есть компонента (для любителей FireBird скажу кстати, что в OpenSource) TIBSQLParser & TIBSQLScript. Они уже все сами умеют делать.


← →
ruslanyd   (2003-03-24 10:53) [3]

а IB7, похоже, команда "set term" ушла в историю -
парсер поумнел :)



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.01 c
14-30563
michael_b
2003-03-23 14:03
2003.04.10
Что начать изучать MathCAD, Maple или MatLab?


14-30529
Barada
2003-03-24 11:52
2003.04.10
ПРОГРАММАТОР для Panasonic KXTA616


1-30451
Lexa
2003-03-28 23:47
2003.04.10
Как убрать мерцание?


14-30597
EthernalWonderer
2003-03-19 17:57
2003.04.10
Нейронные сети


14-30564
uu
2003-03-24 21:33
2003.04.10
Справочник по математике




   Наверх