Главная страница
    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.051 c
15-1159966343
mrcat_
2006-10-04 16:52
2006.10.29
Шахматный чемпионат


6-1149175111
Валерий
2006-06-01 19:18
2006.10.29
Закрыть idHTTP


15-1159929701
Slider007
2006-10-04 06:41
2006.10.29
С днем рождения ! 4 октября


15-1160584898
Cooller
2006-10-11 20:41
2006.10.29
Написание программ на Delphi для Win64


3-1157032916
Patrick
2006-08-31 18:01
2006.10.29
Удаление всех записей





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский