The CFSTOREDPROC tag is the main tag used for executing stored procedures via an ODBC or native connection to a server database. It specifies database connection information and identifies the stored procedure.
<CFSTOREDPROC PROCEDURE="procedure name" DATASOURCE="ds_name" USERNAME="username" PASSWORD="password" DBSERVER="dbms" DBNAME="database name" BLOCKFACTOR="blocksize" PROVIDER="COMProvider" PROVIDERDSN="datasource" DEBUG="Yes/No" RETURNCODE="Yes/No">
Required. Specifies the name of the stored procedure on the database server.
Required. The name of an ODBC or native data source that points to the database containing the stored procedure.
Optional. If specified, USERNAME overrides the username value specified in the data source setup.
Optional. If specified, PASSWORD overrides the password value specified in the data source setup.
Optional. For native database drivers, specifies the name of the database server machine. If specified, DBSERVER overrides the server specified in the data source.
Optional. The database name (Sybase System 11 driver only). If specified, DBNAME overrides the default database specified in the data source.
Optional. Specifies the maximum number of rows to fetch at a time from the server. The range is 1 (default) to 100. The ODBC driver may dynamically reduce the block factor at runtime.
Optional. COM provider (OLE-DB only).
Optional. Data source name for the COM provider (OLE-DB only).
Optional. Yes or No. Specifies whether debug info will be listed on each statement. Default is No.
Optional. Yes or No. Specifies whether the tag populates CFSTOREDPROC.STATUSCODE with the status code returned by the stored procedure. Default is No.
Within a CFSTOREDPROC tag, you code CFPROCRESULT and CFPROCPARAM tags as necessary.
If you set the ReturnCode parameter to "YES", CFSTOREDPROC sets a variable called CFSTOREDPROC.STATUSCODE, which indicates the status code for the stored procedure. Stored procedure status code values vary by DBMS. Refer to your DBMS-specific documentation for the meaning of individual status code values.
In addition to returning a status code, CFSTOREDPROC sets a variable called CFSTOREDPROC.ExecutionTime. This variable contains the number of milliseconds that it took the stored procedure to execute.
Stored procedures represent an advanced feature, found in high-end database management systems. You should be familiar with stored procedures and their usage before implementing these tags.
... <!--- The following example executes a Sybase stored procedure that returns three result sets, two of which we want. The stored procedure returns the status code and one output parameter, which we display. We use named notation for the parameters. ---> <!--- CFSTOREDPROC tag ---> <CFSTOREDPROC PROCEDURE="foo_proc" DATASOURCE="MY_SYBASE_TEST" USERNAME="sa" PASSWORD="" DBSERVER="scup" DBNAME="pubs2" RETURNCODE="YES" DEBUG> <!--- CFPROCRESULT tags ---> <CFPROCRESULT NAME = RS1> <CFPROCRESULT NAME = RS3 RESULTSET = 3> <!--- CFPROCPARAM tags ---> <CFPROCPARAM TYPE="IN" CFSQLTYPE=CF_SQL_INTEGER VALUE="1" DBVARNAME=@param1> <CFPROCPARAM TYPE="OUT" CFSQLTYPE=CF_SQL_DATE VARIABLE=FOO DBVARNAME=@param2> <!--- Close the CFSTOREDPROC tag ---> </CFSTOREDPROC> <CFOUTPUT> The output param value: '#foo#' <br> </CFOUTPUT> <h3>The Results Information</h3> <CFOUTPUT QUERY = RS1>#NAME#,#DATE_COL# <br> </CFOUTPUT> <P> <CFOUTPUT> <hr> <P>Record Count: #RS1.RecordCount# >p>Columns: #RS1.ColumnList# <hr> </CFOUTPUT> <CFOUTPUT QUERY=RS3>#col1#,#col2#,#col3# <br> </CFOUTPUT> <P> <CFOUTPUT> <hr> <P>Record Count: #RS3.RecordCount# <P>Columns: #RS3.ColumnList# <hr> The return code for the stored procedure is: '#CFSTOREDPROC.STATUSCODE#'<br> </CFOUTPUT> ...