Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПроцедура в InterBase Найти похожие ветки
← →
Назаров Евгений (2004-04-13 13:21) [0]Подскажите, почему такой запрос в процедуре компилируется нормально
select name from cat_parse where (id in (2,3)) into :n
а такой ругается
select name from A where (id in (:vp1,:vp2)) into :n
здесь vp1 и vp2 переменные типа integer, id тоже integer
← →
Назаров Евгений (2004-04-13 13:21) [0]Подскажите, почему такой запрос в процедуре компилируется нормально
select name from cat_parse where (id in (2,3)) into :n
а такой ругается
select name from A where (id in (:vp1,:vp2)) into :n
здесь vp1 и vp2 переменные типа integer, id тоже integer
← →
Курдль © (2004-04-13 13:22) [1]Как декларированы vp1 и vp2?
← →
Курдль © (2004-04-13 13:22) [1]Как декларированы vp1 и vp2?
← →
Johnmen © (2004-04-13 13:25) [2]>ругается
Матом ?
← →
Johnmen © (2004-04-13 13:25) [2]>ругается
Матом ?
← →
Назаров Евгений (2004-04-13 13:31) [3]DECLARE VARIABLE VP1 INTEGER;
DECLARE VARIABLE VP2 INTEGER;
← →
Назаров Евгений (2004-04-13 13:31) [3]DECLARE VARIABLE VP1 INTEGER;
DECLARE VARIABLE VP2 INTEGER;
← →
Назаров Евгений (2004-04-13 13:32) [4]Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 31, char 46.
:.
← →
Назаров Евгений (2004-04-13 13:32) [4]Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 31, char 46.
:.
← →
stud © (2004-04-13 13:33) [5]так ругается когда? при компиляции или при выполнении?
← →
stud © (2004-04-13 13:33) [5]так ругается когда? при компиляции или при выполнении?
← →
Vlad © (2004-04-13 13:36) [6]Могу ошибаться, но по-моему двоеточия тут не нужны:
> (:vp1,:vp2)
← →
Vlad © (2004-04-13 13:36) [6]Могу ошибаться, но по-моему двоеточия тут не нужны:
> (:vp1,:vp2)
← →
stud © (2004-04-13 13:36) [7]вообще-то нормально и компилируется и выполняется.
наверное вы что-то недоговариваете?
← →
stud © (2004-04-13 13:36) [7]вообще-то нормально и компилируется и выполняется.
наверное вы что-то недоговариваете?
← →
Johnmen © (2004-04-13 13:36) [8]Так убери : в параметрах, которые в in
:)
← →
Johnmen © (2004-04-13 13:36) [8]Так убери : в параметрах, которые в in
:)
← →
Назаров Евгений (2004-04-13 13:41) [9]убираю, и на этапе компиляции говорит, что
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 31, char 46.
vp1.
← →
Назаров Евгений (2004-04-13 13:41) [9]убираю, и на этапе компиляции говорит, что
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 31, char 46.
vp1.
← →
Соловьев © (2004-04-13 13:45) [10]
> Token unknown - line 31, char 46.
Телепатриуем - ошибка не в
> select name from A where (id in (:vp1,:vp2)) into :n
← →
Соловьев © (2004-04-13 13:45) [10]
> Token unknown - line 31, char 46.
Телепатриуем - ошибка не в
> select name from A where (id in (:vp1,:vp2)) into :n
← →
Соловьев © (2004-04-13 13:48) [11]Вот набросал. работает. БД под ФБ 1.5
CREATE PROCEDURE GET_TEMP
RETURNS (
NAME VARCHAR(54) CHARACTER SET WIN1251)
AS
DECLARE VARIABLE V1 INTEGER;
DECLARE VARIABLE V2 INTEGER;
begin
V1 = 1;
V2 = 2;
FOR
SELECT A.ZONA
FROM ABROAD A
WHERE A.KZON IN (:V1, :V2)
INTO :NAME
do
suspend;
end
← →
Соловьев © (2004-04-13 13:48) [11]Вот набросал. работает. БД под ФБ 1.5
CREATE PROCEDURE GET_TEMP
RETURNS (
NAME VARCHAR(54) CHARACTER SET WIN1251)
AS
DECLARE VARIABLE V1 INTEGER;
DECLARE VARIABLE V2 INTEGER;
begin
V1 = 1;
V2 = 2;
FOR
SELECT A.ZONA
FROM ABROAD A
WHERE A.KZON IN (:V1, :V2)
INTO :NAME
do
suspend;
end
← →
serge35 (2004-04-13 13:49) [12]Найди 31 строку а в ней 46 символ. Что там написано?
← →
serge35 (2004-04-13 13:49) [12]Найди 31 строку а в ней 46 символ. Что там написано?
← →
Назаров Евгений (2004-04-13 13:54) [13]а у меня ругается (IBase 6.5)
declare variable vp1 integer;
declare variable vp2 integer;
declare variable n varchar(255);
begin
vp1=1;
vp2=2;
for
select name from cat_parse
where id in (:vp1,:vp2)
into :n
do
name=name+n;//выходной параметр
suspend;
end
← →
Назаров Евгений (2004-04-13 13:54) [13]а у меня ругается (IBase 6.5)
declare variable vp1 integer;
declare variable vp2 integer;
declare variable n varchar(255);
begin
vp1=1;
vp2=2;
for
select name from cat_parse
where id in (:vp1,:vp2)
into :n
do
name=name+n;//выходной параметр
suspend;
end
← →
Соловьев © (2004-04-13 14:07) [14]
> Назаров Евгений (13.04.04 13:54) [13]
В чем создаешь?
← →
Соловьев © (2004-04-13 14:07) [14]
> Назаров Евгений (13.04.04 13:54) [13]
В чем создаешь?
← →
Johnmen © (2004-04-13 14:07) [15]Смажь всё-таки лыжи и разберись с name
← →
Johnmen © (2004-04-13 14:07) [15]Смажь всё-таки лыжи и разберись с name
← →
Назаров Евгений (2004-04-13 14:09) [16]в это строке
where id in (:vp1,:vp2)
курсор стоит в конце слова in
← →
Назаров Евгений (2004-04-13 14:09) [16]в это строке
where id in (:vp1,:vp2)
курсор стоит в конце слова in
← →
serge35 (2004-04-13 14:17) [17]Проблема в объявлении переменных.
попробуй сразу после degin проинициализировать переменные как написано в примере Соловьева.
← →
serge35 (2004-04-13 14:17) [17]Проблема в объявлении переменных.
попробуй сразу после degin проинициализировать переменные как написано в примере Соловьева.
← →
Назаров Евгений (2004-04-13 14:52) [18]>sergey35 - а разве после begin можно ??
я уже даже новую процедуру создал, всё заново написал как в примере Соловьева, не работает так же !
← →
Назаров Евгений (2004-04-13 14:52) [18]>sergey35 - а разве после begin можно ??
я уже даже новую процедуру создал, всё заново написал как в примере Соловьева, не работает так же !
← →
Digitman © (2004-04-13 15:05) [19]оператор конкатенации строк - ||
← →
Digitman © (2004-04-13 15:05) [19]оператор конкатенации строк - ||
← →
serge35 (2004-04-13 15:07) [20]После begin можно практически все.
Нужен полный текст процедуры.
← →
serge35 (2004-04-13 15:07) [20]После begin можно практически все.
Нужен полный текст процедуры.
← →
Курдль © (2004-04-13 15:08) [21]НЕ ПОНЯЛ!
К сожалению, у меня IB не установлен и проверить нечем...
Но разве если переменная задекларирована, как "vp1", то и прописывать ее надо, как "vp1" а не ":vp1"? Это ведь не параметр процедуры!
← →
Курдль © (2004-04-13 15:08) [21]НЕ ПОНЯЛ!
К сожалению, у меня IB не установлен и проверить нечем...
Но разве если переменная задекларирована, как "vp1", то и прописывать ее надо, как "vp1" а не ":vp1"? Это ведь не параметр процедуры!
← →
serge35 (2004-04-13 15:18) [22]Про двоеточия сказали еще 2 часа назад.
← →
serge35 (2004-04-13 15:18) [22]Про двоеточия сказали еще 2 часа назад.
← →
Курдль © (2004-04-13 15:21) [23]
> Про двоеточия сказали еще 2 часа назад.
Не заметил :) Однако, народ же упорно приводит рабочие примеры
с двоеточиями!
← →
Курдль © (2004-04-13 15:21) [23]
> Про двоеточия сказали еще 2 часа назад.
Не заметил :) Однако, народ же упорно приводит рабочие примеры
с двоеточиями!
← →
Соловьев © (2004-04-13 15:38) [24]
> WHERE A.KZON IN (:V1, :V2)
: - нужно, так как его не написать - то это будет поле таблицы
> Назаров Евгений (13.04.04 14:52) [18]
Проблема при создании? Еще раз спрашиваю - в чем ты это делаешь?
> name=name+n;//выходной параметр
См.> Digitman © (13.04.04 15:05) [19]
← →
Соловьев © (2004-04-13 15:38) [24]
> WHERE A.KZON IN (:V1, :V2)
: - нужно, так как его не написать - то это будет поле таблицы
> Назаров Евгений (13.04.04 14:52) [18]
Проблема при создании? Еще раз спрашиваю - в чем ты это делаешь?
> name=name+n;//выходной параметр
См.> Digitman © (13.04.04 15:05) [19]
← →
Назаров Евгений (2004-04-13 15:57) [25]делаю в IB Expert
а строку > name=name+n;//выходной параметр
я вообще-то закоментировал, тоже не помогло !
← →
Назаров Евгений (2004-04-13 15:57) [25]делаю в IB Expert
а строку > name=name+n;//выходной параметр
я вообще-то закоментировал, тоже не помогло !
← →
Соловьев © (2004-04-13 15:59) [26]
> Назаров Евгений (13.04.04 15:57) [25]
мож глюк ИБ 6.5 - перейди на ФБ 1.5
← →
Соловьев © (2004-04-13 15:59) [26]
> Назаров Евгений (13.04.04 15:57) [25]
мож глюк ИБ 6.5 - перейди на ФБ 1.5
← →
Назаров Евгений (2004-04-13 16:09) [27]а в программе разве ничего править не надо будет ?
тяжковато будет, прогу уже больше года пишу, (а с БД не очень дружу), сейчас ввожу новшества, пишу каталог железа для компьютерной фирмы...
на сколько помню, пытался перейти на FB, первый встретившийся глюк - IBQuery.ExecSQL; - говорит нет такого , короче долго заморачиваться не стал..
← →
Назаров Евгений (2004-04-13 16:09) [27]а в программе разве ничего править не надо будет ?
тяжковато будет, прогу уже больше года пишу, (а с БД не очень дружу), сейчас ввожу новшества, пишу каталог железа для компьютерной фирмы...
на сколько помню, пытался перейти на FB, первый встретившийся глюк - IBQuery.ExecSQL; - говорит нет такого , короче долго заморачиваться не стал..
← →
Соловьев © (2004-04-13 16:11) [28]
> на сколько помню, пытался перейти на FB, первый встретившийся
> глюк - IBQuery.ExecSQL;
мда... точно не дружишь :)
это никак не связано с СУБД - это к компонентам доступа.
Но то что-то ты не договариваешь...
Executes the SQL statement for the query.
procedure ExecSQL;
Description
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL.
ExecSQL prepares the statement in SQL property for execution if it has not already been prepared. To speed performance, an application should ordinarily call Prepare before calling ExecSQL for the first time.
← →
Соловьев © (2004-04-13 16:11) [28]
> на сколько помню, пытался перейти на FB, первый встретившийся
> глюк - IBQuery.ExecSQL;
мда... точно не дружишь :)
это никак не связано с СУБД - это к компонентам доступа.
Но то что-то ты не договариваешь...
Executes the SQL statement for the query.
procedure ExecSQL;
Description
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL.
ExecSQL prepares the statement in SQL property for execution if it has not already been prepared. To speed performance, an application should ordinarily call Prepare before calling ExecSQL for the first time.
← →
serge35 (2004-04-13 16:12) [29]Без полного текста процедуры дальнейшее перепирательство безсмысленно.
← →
serge35 (2004-04-13 16:12) [29]Без полного текста процедуры дальнейшее перепирательство безсмысленно.
← →
Соловьев © (2004-04-13 16:13) [30]
> а в программе разве ничего править не надо будет ?
думаю ничего - разве что БД прийдется восстановить из резервной копии. Но лучше про это почитай на www.ibase.ru
← →
Соловьев © (2004-04-13 16:13) [30]
> а в программе разве ничего править не надо будет ?
думаю ничего - разве что БД прийдется восстановить из резервной копии. Но лучше про это почитай на www.ibase.ru
← →
stud © (2004-04-13 16:42) [31]если исползуеш бде и перейдеш на ибх то придется возможно код подправить чтобы по уму все работало. если останешся на бде ничего править будет не надо
← →
stud © (2004-04-13 16:42) [31]если исползуеш бде и перейдеш на ибх то придется возможно код подправить чтобы по уму все работало. если останешся на бде ничего править будет не надо
← →
Назаров Евгений (2004-04-13 16:51) [32]>Stud , база не BDE, а InterBase, хотел перейти на FB, если надумаю, почитаю, и сделаю - www.ibase.ru - это руль :)
← →
Назаров Евгений (2004-04-13 16:51) [32]>Stud , база не BDE, а InterBase, хотел перейти на FB, если надумаю, почитаю, и сделаю - www.ibase.ru - это руль :)
← →
Соловьев © (2004-04-13 16:58) [33]
> база не BDE, а InterBase
БДЕ - это набор длл для доступа к данным. Так что если используешь TDatabase, TQuery и т.п. То желательно перейти на InterBase Express(IBX)
← →
Соловьев © (2004-04-13 16:58) [33]
> база не BDE, а InterBase
БДЕ - это набор длл для доступа к данным. Так что если используешь TDatabase, TQuery и т.п. То желательно перейти на InterBase Express(IBX)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.6 MB
Время: 0.034 c