[Lazarus] Stored Procedure and Returning Values

Kamil Walas kamilwalas85 at gmail.com
Sat Mar 28 20:45:40 CET 2009


I didn't wrote it explicite, I use FlameRobin and in SQL query with 
SELECT I got nothing but EXECUTE PROCEDURE returns some rows.
Using FlameRobin:
'EXECUTE PROCEDURE ZNAJDZKODKRESKOWY('XXXXXXXX',0,0,0,7);'       - one 
row with data
'SELECT * FROM 
ZNAJDZKODKRESKOWY('XXXXXXXX',0,0,0,7);'                     - no rows 
with data
I don't know how to get result rows from 'EXECUTE ..' in Lazarus.

Execution this code:
             SQLQuery1.SQL.Text := 'EXECUTE PROCEDURE 
ZNAJDZKODKRESKOWY('+''''+'XXXXXXXX'+''''+',0,0,0,7);';
             SQLQuery1.Open;
             ShowMessage(SQLQuery1.FieldByName('ZLECENIE').AsString);
             SQLQuery1.Close;

I got:
             'SQLQuery1: Cannot open a non-select statement'

I think the problem is that my procedure is not "selectable"  and I 
don't know to handle with it.
Is there a way to construct a SQL statment to be "selectable"  or use 
different code in Lazarus?

Kamil


Eduardo Lopez wrote:
> Kamil:
> The way is:
>
> select * from ZnajdzKodKreskowy (....
> //Asign parameters
> qry1.open
> //Read the results
>
> This "open" the query and you can read the result from the stored
> procedure (or loop reading it).
>
> If you use 'Execute procedure ...'  you must use qry1.ExceSQL because in
> this case is for Stored Procedures that don't returns result.
>
> Are you tried to do the "select * from ZnajdzKodKreskowy (...." in the
> SQL query analizer (Flamerobin, IBExperte, etc. etc.)?
> It works there?
> Your Stored procedure is  "selectable" ?
> (http://firebird-with-delphi.blogspot.com/2007/07/fb-selectable-stored-procedure.html)
>
> I am a newbie too in Lazarus and have the same question some time ago,
> and this list help me too, so i can confirm that this is the way :-)
>
> Regards
> Eduardo.
>
>
> Kamil Walas escribió:
>   
>> Hi,
>>
>> I try before but it didn't work. This procedure work if Ido
>> 'Execute procedure ZnajdzKodKreskowy (:Kod, 0, 0, 0, :IleCyfrSprawdzac) ' 
>> but if I do
>> 'SELECT * FROM ZnajdzKodKreskowy (:Kod, 0, 0, 0, :IleCyfrSprawdzac)'
>> I got nothing. It simply doesn't work that way.
>>
>> Code with:
>>
>> qry01.SQL.Text:= 'Execute procedure ZnajdzKodKreskowy (:Kod, 0, 0, 0, :IleCyfrSprawdzac) ';
>> qry01.Open.Active := True;
>>
>> I get erreor: 'Statment cannot be performed on non-select stetment' or 
>> something like that and I must do
>>
>> qry01.ExecSQL;
>>
>> but I don't know how to get returning parameters in that kind of 
>> instruction.
>>
>> Kamil
>>
>> Eduardo Lopez pisze:
>>   
>>     
>>> Hi,
>>> you must do a "select * from ZnajdzKodKreskowy (:Kod, 0, 0, 0,
>>> :IleCyfrSprawdzac)"
>>>
>>> The example:
>>>
>>>    qry01.SQL.Clear;
>>>    qry01.SQL.Text:= 'select * from ZnajdzKodKreskowy (:Kod, 0, 0, 0,
>>> :IleCyfrSprawdzac)';
>>>    qry01.Params.ParamByName('Kod').AsString:= 'AAA';
>>>    qry01.Params.ParamByName('IleCyfrSprawdzac').AsString:= 'BBB';   // I
>>> don't know what type are your paremeters :-)
>>>    qry01.Open;
>>>    MyResult01:=qry01.FieldByName('Jest').AsString;
>>>    MyResult02:=qry01.FieldByName('Zlecenie').AsString;
>>>    MyResult03:=qry01.FieldByName('...others...').AsString;
>>>    qry01.Close;
>>>
>>> Have a nice weekend!
>>>
>>> Eduardo.
>>>
>>> Kamil Walas escribió:
>>>   
>>>     
>>>       
>>>> Hi,
>>>>
>>>> I have stored procedure in FireBird:
>>>> EXECUTE PROCEDURE ZnajdzKodKreskowy (:Kod, 0, 0, 0, :IleCyfrSprawdzac)
>>>> RETURNING_VALUES (:Jest, :Zlecenie, :I1, :I2, :I3, :I4, :D, :I5, :S);
>>>>
>>>> I was trying to get returning values to lazarus code, but I couldn't. I 
>>>> find out that there is no StoredProcedure element from Delphi. How could 
>>>> I get this values? I would be pleased if someone wrote an example.
>>>>
>>>> And sorry for my English.
>>>>
>>>> Best regards,
>>>> Kamil Walas
>>>>  
>>>> _______________________________________________
>>>> Lazarus mailing list
>>>> Lazarus at lazarus.freepascal.org
>>>> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>>>>
>>>>   
>>>>     
>>>>       
>>>>         
>>> _______________________________________________
>>> Lazarus mailing list
>>> Lazarus at lazarus.freepascal.org
>>> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>>>
>>>   
>>>     
>>>       
>> _______________________________________________
>> Lazarus mailing list
>> Lazarus at lazarus.freepascal.org
>> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>>
>>   
>>     
>
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20090328/7ec382d2/attachment-0007.html>


More information about the Lazarus mailing list