Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.041 c
2-1161006472
Ksan
2006-10-16 17:47
2006.10.29
Синтаксис


4-1150282634
SamProf
2006-06-14 14:57
2006.10.29
Как создать виртуальнкю файловую систему


1-1158359971
maxistent
2006-09-16 02:39
2006.10.29
GetProcessMemoryInfo


6-1142597804
Sollo
2006-03-17 15:16
2006.10.29
Upload файла на сервер


15-1160382337
DelphiN!
2006-10-09 12:25
2006.10.29
Перевод кирилицы в коды используемые MSWord-ом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский