Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где ошибка в ХП [D5, IB6.x]


Страницы:   1 2 3

Pashok ©   (2003-01-28 10:47:00) 

Вроде все при на мой взгляд верно, но выполняться не хочет.

create procedure vybor (ipKRIT char(20))
returns (opPhone CHAR(7), opName CHAR(30), opStreet CHAR(37))
AS
Begin
for select * from kvartir where name like ipKRIT
into :opPhone , :opName, :opStreet
DO SUSPEND;
end
Не подскажите ?
И ещё хотел задать вопрос можно ли из консоли ИБ 6.0 через Интерактив SQL запихать в базу хранимую процедуру ?


Pashok   (2003-01-29 10:23:00) [1]


> Прараметр надо передавать в скобках.
> Вот так IBQuery1.SQL.Add("select * from vybor " +"(" +(df)
> +")");
>
> И будет тебе щасье.
>
> Саня

Всем огромное пасиба. Вроде работает и мозги чуть поправились....
Первая прога на ИБ 6-ой версии вроде удалась осталось перенести её на сервер и проверить там работоспособность.
Удачи ВСЕМ и мне чуть чуть ....
Best Regards!


AlexSerp   (2003-01-29 09:07:00) [2]

Наташ, так здесь впрос был конкретно по IB.
Естественно, что если делается для разных серверов, то и подход другой.

Саня ;-)


Наталия   (2003-01-29 08:59:00) [3]

И помнить при этом формат представления дат,чисел и т.п. на каждом типе сервера?


AlexSerp   (2003-01-29 08:56:00) [4]

Наталия, а так ли это накладно - вызов функции преобразлвания в строку? ;-)

Саня


Наталия   (2003-01-29 06:06:00) [5]

AlexSerp (28.01.03 16:03)
>А мне всегда интересно было, зачем работать через параметры, когда во время формирования запроса значение УЖЕ известно. Его проще подставить сразу.

При использовании параметров не нужно переводить формат представления данных в строковый, что актуально,например, для дат.


AlexSerp   (2003-01-28 16:36:00) [6]

А если в цикле, то перед циклом желательно выполнить Prepare.
Ну об этом и собаки не брешут.
Плюс после цикла UnPrepare. ;-)

Саня


Wolf   (2003-01-28 16:30:00) [7]

А если в цикле, то перед циклом желательно выполнить Prepare.


AlexSerp   (2003-01-28 16:03:00) [8]

2Wolf ©
А мне всегда интересно было, зачем работать через параметры, когда во время формирования запроса значение УЖЕ известно. Его проще подставить сразу.
А вот если в цикле потом работать, то твой пример Wolf ©"в самую дырочку".
Просто из отрывка кода не понятно, в цикле это будет ии нет.

Саня


Wolf   (2003-01-28 15:59:00) [9]

Ну вы блин даете... (это про поиск : )

Кстати, а чего не засунуть в дизайнере
IBQuery1.SQL следующее select * from vybor(:df)
А потом работать через параметры?


AlexSerp   (2003-01-28 15:42:00) [10]

Слава яйцам, появилась ХП.
Теперь через
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("select * from vybor "+(df));
IBQuery1.Open;
не хочет пердаваться в процедуру параметр и правильно делает.
все конечно передается строковым зачением, а именно вместо параметра присутствует DF.
какой компонент позволят передать "select * from vybor " и далее параметр (значение его) ?

Прараметр надо передавать в скобках.
Вот так IBQuery1.SQL.Add("select * from vybor " +"("+(df) +")");

И будет тебе щасье.

Саня


Delirium^.Tremens   (2003-01-28 15:39:00) [11]


> за помощь спасибо.
> но это не последняя подсказка ......
> такшто держитесь ;-)

Ну, вот из за тебя кеды промокли... :-)


Pashok   (2003-01-28 15:37:00) [12]

Обожди сам ща гляну ....
вроде не дебил с локальными легко а с серверными БД напряг месяц как начал знакомство, 3 раз лезу в ИБ базу
за помощь спасибо.
но это не последняя подсказка ......
такшто держитесь ;-)


Pashok   (2003-01-28 15:30:00) [13]

Слава яйцам, появилась ХП.
Теперь через
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add("select * from vybor "+(df));
IBQuery1.Open;
не хочет пердаваться в процедуру параметр и правильно делает.
все конечно передается строковым зачением, а именно вместо параметра присутствует DF.
какой компонент позволят передать "select * from vybor " и далее параметр (значение его) ?


AlexSerp   (2003-01-28 15:28:00) [14]

Много разных средств для работы с IB смотрел.
Лучше QuickDesk я пока не видел. Это я ТОЛЬКО про себя.

Саня


AlexSerp   (2003-01-28 15:26:00) [15]

create procedure vybor (ipKRIT char(20))
returns (Phone CHAR(7), Name CHAR(30), Street CHAR(37))
AS
Begin
for select phone, name, street
from kvartir where name like ipKRIT
into :Phone , :Name, :Street
do
suspend;
end

Тебе надо написать " like :ipKRI"
ругается на то, что нет двоеточия.

Я использую QuickDesk ( http://www.ems-hitech.com/ibmanager/index.phtml), правда создатели
сделали новый продукт IBManager.
Но QuickDesk пока, мне кажется, работает лучше.

Саня

ЗЫ. Если хочешь могу по мылу прислать QuickDesk.


Pashok   (2003-01-28 15:21:00) [16]

Э нет. Не даждетесь, - сказал Абрам Биллу Гейтсу .....


Alexandr   (2003-01-28 15:12:00) [17]

слушай, пашок, бросай ты программирование...
Ей богу


Pashok   (2003-01-28 14:57:00) [18]

Распишу тогда сначала, может мне тоже поможет понять что я хочу.
И так:
Это будет телефонный справочник.
1. Хочу сделать хранимую процедуру в ИБ 6.
2. В базе есть одна таблица (kvartir), в которой с тремя столбцами (phone,name,street- все строковые).
3. Есть индекс по полю Name.
4. Есть клиентское приложение на стадии разработки ...
Из этого приложения я буду работать с БД через Database, IBQuery, IBStoredProc, IBTransaction.
5. .......
.................
.................
10.
Не получается загнать ХП .
запускаю консоль ИБ.
захожу в interactive SQL.
набираю :
SET TERM ^ ;
create procedure vybor (ipKRIT char(20))
returns (Phone CHAR(7), Name CHAR(30), Street CHAR(37))
AS
Begin
for select phone, name, street
from kvartir where name like ipKRIT
into :Phone , :Name, :Street
do
suspend;
end
^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;


и выходит сообщение:

Dynamic SQL Error
SQL error code = -206
Column unknown
IPKRIT
Statement: create procedure vybor (ipKRIT char(20))
returns (Phone CHAR(7), Name CHAR(30), Street CHAR(37))
AS
Begin
for select phone, name, street
from kvartir where name like ipKRIT
into :Phone , :Name, :Street
do
suspend;
end

...
что столбец не найден.

Ладно.
ставлю двоеточие (:ipKRIT char(20))
Мессага
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 24
:
Statement: create procedure vybor (:ipKRIT char(20))
returns ......................
..........


и ничего не получается, точнее получается но нето (нега тучей небо кроет .... пи.ец полнейший) интерпретация посетителей прискорбного заведения .....


Наталия   (2003-01-28 13:56:00) [19]

А двоеточие перед этим параметром не пробовал ставить?


Alexandr   (2003-01-28 13:56:00) [20]

скорее второе :)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо