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

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

Передача параметров [D5, D6, FireBird 1.5.1]


Виталий Панасенко ©   (2004-09-21 14:45:00) 

Есть ХП с входным параметром типа Date
Подскажите, как передать значение в эту самую процедуру из Делфи ? Доступ с помощью FIBPlus.
Спасибо.


Johnmen   (2004-09-22 10:23:00) [1]

Пробовать:
обозначение параметра :вместо ?; имя параметра в запросе строгосовпадает с в ParamByName;

А вообще, лучше динамически подставлять в строку запроса '2004-09-21'. Изменяющуюся ес-но...

И ещё. Интересно запрос в виде
SQL='insert into zakazcur select CAST(''2004-09-21'' AS DATE), zakaz_id, 0 from zakaz'
вообще выполняется ?


Виталий Панасенко   (2004-09-22 09:54:00) [2]

В чудеса не верю.. :-) На ДМ лежит DataBase, readTransaction, writeTransaction. FIBQuery... Св-во SQL='insert into zakazcur select ?d1, zakaz_id, 0 from zakaz'
Привожу всю процедуру.. Там я уже игрался, как мог:
var
D : TDate;
begin
  D := dm.sDate;
  while D


Johnmen   (2004-09-21 18:08:00) [3]

>Виталий Панасенко   (21.09.04 17:13) [12]
>Но получаю другую ошибку на этапе назначениея парамету значения

Чудеса...
Если хочешь, приводи подробности и код.


Виталий Панасенко   (2004-09-21 17:13:00) [4]

>Johnmen ©   (21.09.04 16:55) [10]
>Погоди-ка...
>В FIBQuery ты выполнял "чистый" запрос или запросом вызывал ХП ?
Чистый, с параметром ?D1.. Но получаю другую ошибку на этапе назначениея парамету значения: Access violation at address 0525A40 in module Project1. Read of address 00000038

>Sem
Мне просто нужно из шаблона заполнить рабочую таблицу, что пользователь потом только количество заказов правил... Я это сделал, но на клиенте... Меня смущает ошибка.. Хочу разобраться.


-SeM-   (2004-09-21 16:59:00) [5]

Виталий Панасенко   (21.09.04 16:05) [7]

> select :d1, zakaz_id, 0 from zakaz


Получим
SELECT '21.09.2004', zakaz_id, 0 from zakaz

Что выбираем?


Johnmen   (2004-09-21 16:55:00) [6]

Погоди-ка...
В FIBQuery ты выполнял "чистый" запрос или запросом вызывал ХП ?


Виталий Панасенко   (2004-09-21 16:51:00) [7]

Да, вот для того я вместо StoredProc и попробовал FIBQuery - получаю ту же ошибку :-(... Хорошо хоть работа локальнои данных десятка два (строк)...


Johnmen   (2004-09-21 16:09:00) [8]

Зачем перебирать. Просто выполнить указанный запрос...


Виталий Панасенко   (2004-09-21 16:05:00) [9]

Ее я и использовал... Не пашет, выдет тоже... А сам процедура то (смешно самому):
set term ^ ;
create procedure fillcurzakaz (d1 date)
as
  begin
    insert into zakazcur
    select :d1, zakaz_id, 0 from zakaz;
  end^

set term ; ^
grant execute on procedure fillcurzakaz to public;
Я то на клиенте это "влоб" сделал, но не интересно перебирать по одной записи while not tbl.eof do tbl2.Append и тд... может, что версия 4,42 ? и иногда (через раз) на присвоении параметру значения получаю Access violation...


Johnmen   (2004-09-21 15:29:00) [10]

>Виталий Панасенко   (21.09.04 15:08) [2]

Ну если так у тебя, то возможно Роман Снегирев   (21.09.04 15:11) [4]
А как выглядит запрос ? И почему не использовать TpFIBStoredProc ?


Виталий Панасенко   (2004-09-21 15:28:00) [11]

все та же ошибка...


stud   (2004-09-21 15:11:00) [12]

dm.fillSP.ParamByName('D1').AsDate:= strtodate('21.09.2004');


Роман Снегирев   (2004-09-21 15:11:00) [13]

ParamByName("MyParam").AsDateTime:=MyDateParamValue


Виталий Панасенко   (2004-09-21 15:08:00) [14]

>Johnmen ©   (21.09.04 14:49) [1]
>Как строку '08.03.2004'

conversion error from string ''2004-09-21''
хоть и пишу
      dm.fillSP.ParamByName('D1').AsString := '21.09.2004';//DateToStr(D);
      dm.fillSP.ExecQuery;


Johnmen   (2004-09-21 14:49:00) [15]

Как строку '08.03.2004'


Наверх

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