Subject Re: Stored Procedure
From Mervyn Bick <invalid@invalid.invalid>
Date Wed, 4 Jul 2018 12:20:01 +0200
Newsgroups dbase.getting-started
Attachment(s) test_ean.png

On 2018-07-04 11:10 AM, Anna wrote:
> Hallo,
>
> I need to call a stored procedure created in firebird into a dbase (Ver. 2.21) program. I call in this way
>
> d= new Mydb();
> p= new StoredProc();
> p.database = d
> p.procedureName = "prova_procedura"
> p.active=true
>
> p.params["column"].value -> return only first row but i need that return a rowset because the stored procedure return more rows
>
>
> Help me please
> Thanks
> Anna
>

I'm using ADO in dBASE 12 to access Firebird 2.5 stored procedures but I
presume using a standard query via the BDE should work the same way.  (I
haven't tried using the BDE for this so this is a case of ...where
Angels fear to tread. :-) )

A screenshot of a little test form is attached.

I've used the procedure name (verify_eancode) in an ADOquery's SELECT
statement. It fetches the correct records from the table and they can be
ordered as necessary.


    this.ADODATABASE1 = new ADODATABASE(this)
    with (this.ADODATABASE1)
      left = 2.0
      width = 10.0
      height = 1.0
      connectionString = "DRIVER=Firebird/InterBase(r)
driver;DBNAME=d:\firebird_databases\dBASE_Examples.fdb;DIALECT=3;READONLY
=true"
      loginString = "sysdba/masterkey"
      active = true
    endwith

    this.ADOQUERY1 = new ADOQUERY(this)
    with (this.ADOQUERY1)
       left = 25.0
       width = 8.0
       height = 1.0
       database = form.adodatabase1
       connected = true
       sql = "select  * from verify_eancode order by eancode"
       requestLive = false
       active = true
    endwith


A second ADOquery fetches the main table for display and the
executeSQL() method of a read/write ADOdatabase object is used to
execute SQL INSERT, UPDATE or DELETE commands.


Mervyn.