Форум: "Базы";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
ВнизНе получается выполнить процедуру. Найти похожие ветки
← →
SergP. (2006-08-31 12:27) [0]ADO, ORACLE, Provider=OraOLEDB.Oracle
ADCmd:TAdocommand;
ADQuery:TAdoQuery;
Пишу так:
...
ADCmd.CommandText:="DataOutput(par1 => :pdate1, par2 => :pdate2, par3 => :ptype, par4 => :charcode, par5 => :mdate1, par6 => :mdate2 ); end;";
with ADCmd.Parameters do
begin
ParamByName("pdate1").DataType:=ftDateTime;
ParamByName("pdate2").DataType:=ftDateTime;
ParamByName("ptype").DataType:=ftInteger;
ParamByName("charcode").DataType:=ftString;
ParamByName("mdate1").DataType:=ftDateTime;
ParamByName("mdate2").DataType:=ftDateTime;
end;
while not ADQuery.eof do
begin
ProgressBar1.Max:=ADQuery.RecordCount;
ProgressBar1.Position:=ADQuery.RecNo;
with ADCmd.Parameters do
begin
ParamByName("pdate1").value:=trunc(pbdate);
ParamByName("pdate2").value:=trunc(pedate);
ParamByName("ptype").value:=ADQuery.fieldByName("pertype").AsInteger;
ParamByName("charcode").value:=ADQuery.fieldByName("charcode").AsString;
ParamByName("mdate1").value:=ADQuery.fieldByName("moddate").AsDateTime;
ParamByName("mdate2").value:=ADQuery.fieldByName("moddate").AsDateTime;
end;
ADCmd.Execute;
Application.ProcessMessages;
ADQuery.Next;
end;
end;
Но не хочет работать...
ORA-00900: invalid SQL statement
Что я не правильно делаю?
← →
Reindeer Moss Eater © (2006-08-31 12:33) [1]Синтаксис видимо нарушаешь.
← →
SergP. (2006-08-31 12:37) [2]> [1] Reindeer Moss Eater © (31.08.06 12:33)
> Синтаксис видимо нарушаешь.
Ну такая штука в SQLPlus работает:
spool unload.log
declare
p1 date := to_date("01.01.2006","dd.mm.yyyy");
p2 date := to_date("31.12.2006","dd.mm.yyyy");
p5 date := to_date("01.12.2005","dd.mm.yyyy");
p6 date := to_date("28.02.2006","dd.mm.yyyy");
p7 number := 1;
p9 number := 300;
p10 number := 1;
p11 number := 1;
begin
for abc in
(
select distinct c.ModDate, c.PerType, f.CharCode
from card c, "FORM" f, ( select distinct CharCode From FormRow ) fr
where c."FORM" = f.code
and f.CharCode = fr.CharCode
and c.PerDate between p1 and p2
and c.ModDate between p5 and p6
) loop
DataOutput(
par1 => p1, par2 => p2,
par3 => abc.PerType, par4 => abc.CharCode,
par5 => abc.ModDate, par6 => abc.ModDate
);
end loop;
end;
/
spool off
exit;
если нарушил синтаксис, то помогите найти где...
← →
Desdechado © (2006-08-31 12:39) [3]> помогите найти где.
... :mdate2 ); end;";
← →
SergP. (2006-08-31 12:42) [4]> [3] Desdechado © (31.08.06 12:39)
> > помогите найти где.
> ... :mdate2 ); end;";
Щас вытру... попробую... Но на PHP вот это работало:
$var2="par1 => to_date("$dpb","$datefrm"), par2 => to_date("$dpe","$datefrm"), par3 => $pertype, par4 => "$charcode", par5 => to_date("$moddate","$datefrm"), par6 => to_date("$moddate","$datefrm")";
$sql2="DataOutput($var2); end;";
$stmt=oci_parse($c1,$sql2);
OCI_execute($stmt);
← →
Reindeer Moss Eater © (2006-08-31 12:43) [5]Ну такая штука в SQLPlus работает:
А у тебя в CommandText разве "такая штука"?
Где оформленный PL/SQL блок?
А если это для контекста SQL то где select?
← →
SergP. (2006-08-31 12:44) [6]> [3] Desdechado © (31.08.06 12:39)
> > помогите найти где.
> ... :mdate2 ); end;";
Убрал... Все равно ORA-00900: invalid SQL statement
← →
Reindeer Moss Eater © (2006-08-31 12:45) [7]>Все равно ORA-00900: invalid SQL statement
А ты типа не можешь в это поверить. И продолжаешь думать что все у тебя валид.
← →
SergP. (2006-08-31 12:47) [8]> Где оформленный PL/SQL блок?
Ага.. вроде ясно...
ADCmd.CommandText:="begin DataOutput(par1 => :pdate1, par2 => :pdate2, par3 => :ptype, par4 => :charcode, par5 => :mdate1, par6 => :mdate2 ); end; ";
теперь работает
← →
Desdechado © (2006-08-31 12:50) [9]> Убрал... Все равно ORA-00900: invalid SQL statement
А кто говорил, что надо убрать?
← →
ANB © (2006-08-31 15:21) [10]
> SergP. (31.08.06 12:47) [8]
Вот не лень же мучиться . . .
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c