Форум: "Базы";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизПередача параметров Найти похожие ветки
← →
Виталий Панасенко (2004-09-21 14:45) [0]Есть ХП с входным параметром типа Date
Подскажите, как передать значение в эту самую процедуру из Делфи ? Доступ с помощью FIBPlus.
Спасибо.
← →
Johnmen © (2004-09-21 14:49) [1]Как строку "08.03.2004"
← →
Виталий Панасенко (2004-09-21 15:08) [2]>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;
← →
stud © (2004-09-21 15:11) [3]dm.fillSP.ParamByName("D1").AsDate:= strtodate("21.09.2004");
← →
Роман Снегирев (2004-09-21 15:11) [4]ParamByName("MyParam").AsDateTime:=MyDateParamValue
← →
Виталий Панасенко (2004-09-21 15:28) [5]все та же ошибка...
← →
Johnmen © (2004-09-21 15:29) [6]>Виталий Панасенко (21.09.04 15:08) [2]
Ну если так у тебя, то возможно Роман Снегирев (21.09.04 15:11) [4]
А как выглядит запрос ? И почему не использовать TpFIBStoredProc ?
← →
Виталий Панасенко (2004-09-21 16:05) [7]Ее я и использовал... Не пашет, выдет тоже... А сам процедура то (смешно самому):
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 16:09) [8]Зачем перебирать. Просто выполнить указанный запрос...
← →
Виталий Панасенко (2004-09-21 16:51) [9]Да, вот для того я вместо StoredProc и попробовал FIBQuery - получаю ту же ошибку :-(... Хорошо хоть работа локальнои данных десятка два (строк)...
← →
Johnmen © (2004-09-21 16:55) [10]Погоди-ка...
В FIBQuery ты выполнял "чистый" запрос или запросом вызывал ХП ?
← →
-SeM- (2004-09-21 16:59) [11]Виталий Панасенко (21.09.04 16:05) [7]
> select :d1, zakaz_id, 0 from zakaz
Получим
SELECT "21.09.2004", zakaz_id, 0 from zakaz
Что выбираем?
← →
Виталий Панасенко (2004-09-21 17:13) [12]>Johnmen © (21.09.04 16:55) [10]
>Погоди-ка...
>В FIBQuery ты выполнял "чистый" запрос или запросом вызывал ХП ?
Чистый, с параметром ?D1.. Но получаю другую ошибку на этапе назначениея парамету значения: Access violation at address 0525A40 in module Project1. Read of address 00000038
>Sem
Мне просто нужно из шаблона заполнить рабочую таблицу, что пользователь потом только количество заказов правил... Я это сделал, но на клиенте... Меня смущает ошибка.. Хочу разобраться.
← →
Johnmen © (2004-09-21 18:08) [13]>Виталий Панасенко (21.09.04 17:13) [12]
>Но получаю другую ошибку на этапе назначениея парамету значения
Чудеса...
Если хочешь, приводи подробности и код.
← →
Виталий Панасенко (2004-09-22 09:54) [14]В чудеса не верю.. :-) На ДМ лежит DataBase, readTransaction, writeTransaction. FIBQuery... Св-во SQL="insert into zakazcur select ?d1, zakaz_id, 0 from zakaz"
Привожу всю процедуру.. Там я уже игрался, как мог:
var
D : TDate;
begin
D := dm.sDate;
while D <= dm.eDate do
begin
try
(*with dm, fillSPQry do
begin
{SQL.Clear;
SQL.Add("insert into zakazcur select cast("+ QuotedStr(DateToStr(D))+" as date) , zakaz_id,0 from zakaz");}
ParamByName("D1").AsDateTime := D;
end;*)
dm.fillSPQry.ParamByName("D1").AsDateTime := D;//"21.09.2004";//DateToStr(D); - Тут получаю Access violation
dm.fillSPQry.ExecQuery;
except
dm.fillSPQry.Transaction.Rollback;
if MessageDlg("Îøèáêà ïðè çàïîëíåíè äëÿ " + DateToStr(D)+" ÷èñëà. Ïðîäîëæèòü ?", mtConfirmation, [mbYes, mbNo], 0) <> mrOK then
Break;
end;//-try..except*)
(*dm.zkzTbl.First;
with dm do
while not zkzTbl.Eof do
begin
zkzcTbl.Append;
zkzcTblZAKAZ_ID.Value := zkzTblZAKAZ_ID.Value;
zkzcTblZAKAZ_DATE.Value := D;
zkzcTblZAKAZ_KOLVO.Value := 0;
zkzcTbl.Post;
zkzTbl.Next;
end;*)
D := D + 1;//-Ñëåäóþùèé äåíü
end;//-while
dm.zkzcTbl.CloseOpen(False);
У меня такое подозрение, что это из-за того, что FB версии 1,5,1, а FIBPlus - 4.42. Я его трассировал, ошибка происходит в модуле FIBQuery... Может, в 1,5,1 изменились значения типов полей в систаблицах и старая версия не может определить тип параметра ?
← →
Johnmen © (2004-09-22 10:23) [15]Пробовать:
обозначение параметра : вместо ?; имя параметра в запросе строго совпадает с в ParamByName;
А вообще, лучше динамически подставлять в строку запроса "2004-09-21". Изменяющуюся ес-но...
И ещё. Интересно запрос в видеSQL="insert into zakazcur select CAST(""2004-09-21"" AS DATE), zakaz_id, 0 from zakaz"
вообще выполняется ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.039 c