Problem: Looking for an example of how to call an InterBase stored procedure using Delphi's TStoredProc component. Solution: The information in this article applies to: * InterBase v4.x * InterBase v5.x * Delphi 1.x, 2.x, 3.x, 4.x Here is an example of how to call an InterBase stored procedure using Delphi's TStoredProc component. The stored procedure retrieves and returns the next value from a generator. You must create this stored procedure and generator in the database. Creating the generator: ================== create generator cust_no_gen; Here is the InterBase Stored procedure: =============================== create procedure proc1 returns(e_no integer) as begin e_no=gen_id(cust_no_gen,1); end ------------------------------------------------------ ------------------------------------------------------------ Here are the steps to accomplish the task in Delphi: * Put TDatabase, TStoredProc, TButton, TLabel components on the form. * Set the following properties for TDatabase component:> AliasName to the BDE alias pointing to the database created> Fill in DatabaseName to be used by other database components> Connected to True * Set the following properties for TStoredProc component:> Databasename to the name you set for your TDatabase component> StoredProcName to the name of the stored procedure in the database (You can select from drop down list) * Double click on the TButton component and add the following code in between begin and end. storedproc1.execproc; label1.caption:=storedproc1.parambyname('e_no').asstring; The result would look like this: ========================= procedure TForm1.Button2Click(Sender: TObject); begin storedproc1.execproc; label1.caption:=storedproc1.parambyname('e_no').asstring; end; end. * Save the project/form/unit and Run. * Click on the Button and the next generated number will be displayed. Some benefits of getting the gen id first before inserting it: ============================================= * The next generated number will be visible, so it is known exactly what's inserted. * Using trigger to call the generator in Delphi often results in error "Record Key Deleted". Calling the generator using TstoredProc is a workaround for this error.
Last Modified: 02-OCT-00