![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процедура в InterBase [D7, IB6.x]
Назаров Евгений © (2004-04-13 13:21:00)Подскажите, почему такой запрос в процедуре компилируется нормально
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 16:58:00) [1]
> база не BDE, а InterBase
БДЕ - это набор длл для доступа к данным. Так что если используешь TDatabase, TQuery и т.п. То желательно перейти на InterBase Express(IBX)
Назаров Евгений (2004-04-13 16:51:00) [2]>Stud , база не BDE, а InterBase, хотел перейти на FB, если надумаю, почитаю, и сделаю - www.ibase.ru - это руль :)
stud (2004-04-13 16:42:00) [3]если исползуеш бде и перейдеш на ибх то придется возможно код подправить чтобы по уму все работало. если останешся на бде ничего править будет не надо
Соловьев (2004-04-13 16:13:00) [4]
> а в программе разве ничего править не надо будет ?
думаю ничего - разве что БД прийдется восстановить из резервной копии. Но лучше про это почитай на www.ibase.ru
serge35 (2004-04-13 16:12:00) [5]Без полного текста процедуры дальнейшее перепирательство безсмысленно.
Соловьев (2004-04-13 16:11:00) [6]
> на сколько помню, пытался перейти на 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:09:00) [7]а в программе разве ничего править не надо будет ?
тяжковато будет, прогу уже больше года пишу, (а с БД не очень дружу), сейчас ввожу новшества, пишу каталог железа для компьютерной фирмы...
на сколько помню, пытался перейти на FB, первый встретившийся глюк - IBQuery.ExecSQL; - говорит нет такого , короче долго заморачиваться не стал..
Соловьев (2004-04-13 15:59:00) [8]
> Назаров Евгений (13.04.04 15:57) [25]
мож глюк ИБ 6.5 - перейди на ФБ 1.5
Назаров Евгений (2004-04-13 15:57:00) [9]делаю в IB Expert
а строку > name=name+n;//выходной параметр
я вообще-то закоментировал, тоже не помогло !
Соловьев (2004-04-13 15:38:00) [10]
> 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:21:00) [11]
> Про двоеточия сказали еще 2 часа назад.
Не заметил :) Однако, народ же упорно приводит рабочие примеры
с двоеточиями!
serge35 (2004-04-13 15:18:00) [12]Про двоеточия сказали еще 2 часа назад.
Курдль (2004-04-13 15:08:00) [13]НЕ ПОНЯЛ!
К сожалению, у меня IB не установлен и проверить нечем...
Но разве если переменная задекларирована, как "vp1", то и прописывать ее надо, как "vp1" а не " :vp1"? Это ведь не параметр процедуры!
serge35 (2004-04-13 15:07:00) [14]После begin можно практически все.
Нужен полный текст процедуры.
Digitman (2004-04-13 15:05:00) [15]оператор конкатенации строк - ||
Назаров Евгений (2004-04-13 14:52:00) [16]>sergey35 - а разве после begin можно ??
я уже даже новую процедуру создал, всё заново написал как в примере Соловьева, не работает так же !
serge35 (2004-04-13 14:17:00) [17]Проблема в объявлении переменных.
попробуй сразу после degin проинициализировать переменные как написано в примере Соловьева.
Назаров Евгений (2004-04-13 14:09:00) [18]в это строке
where id in (:vp1,:vp2)
курсор стоит в конце слова in
Johnmen (2004-04-13 14:07:00) [19]Смажь всё-таки лыжи и разберись с name
Соловьев (2004-04-13 14:07:00) [20]
> Назаров Евгений (13.04.04 13:54) [13]
В чем создаешь?