Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Не получается выполнить процедуру.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.075 c
2-1160642558
LeonQ
2006-10-12 12:42
2006.10.29
Сводка


2-1160722864
проходил мимо решил заглянуть
2006-10-13 11:01
2006.10.29
скопировать файл


1-1158062383
REA
2006-09-12 15:59
2006.10.29
XML разделитель


6-1149106171
Тфьу
2006-06-01 00:09
2006.10.29
Почему разные crc32?


2-1160865116
Noxq
2006-10-15 02:31
2006.10.29
Как скрыть форму, ещё в событии OnCreate.