Executes a stored procedure in a server database. It specifies database connection information and identifies the stored procedure.
<cfstoredproc dataSource = "data source name
" procedure = "procedure name
" debug = "yes|no" blockFactor = "block size
" password = "password
" result = "result name
" returnCode = "yes|no" username = "user name
">
cfinsert, cfqueryparam, cfprocparam, cfprocresult, cftransaction, cfquery, cfupdate; "Optimizing database use" 37 in the ColdFusion Developer's Guide
ColdFusion MX 7: Added the result attribute.
ColdFusion MX: Deprecated the connectString, dbName, dbServer, dbtype, provider, and providerDSN attributes. They do not work, and might cause an error, in releases later than ColdFusion 5. (Releases starting with ColdFusion MX use Type 4 JDBC drivers.)
Attribute |
Req/Opt |
Default |
Description |
---|---|---|---|
dataSource |
Required |
|
Name of data source that points to database that contains stored procedure. |
procedure |
Required |
|
Name of stored procedure on database server. |
blockFactor |
Optional |
1 |
Maximum number of rows to get at a time from server. Range is 1 to 100. |
debug |
Optional |
no |
|
password |
Optional |
|
Overrides password in data source setup. |
result |
Optional |
|
Specifies a name for the structure in which cfstoredproc returns the statusCode and ExecutionTime variables. If set, this value replaces cfstoredproc as the prefix to use when accessing those variables. For more information, see Usage. |
returnCode |
Optional |
no |
|
username |
Optional |
|
Overrides username in data source setup. |
Use this tag to call a database stored procedure. Within this tag, you code cfprocresult and cfprocparam tags as follows:
If you set returnCode = "Yes", this tag sets the variable prefix.
statusCode, which holds the status code for a stored procedure. Status code values vary by DBMS. For the meaning of code values, see your DBMS documentation.
This tag sets the variable prefix.
ExecutionTime, which contains the execution time of the stored procedure, in milliseconds.
The value of prefix
is either cfstoredproc or the value specified by the result attribute, if it is set. The result attribute provides a way for stored procedures that are called from multiple pages, possibly at the same time, to avoid overwriting the results of one call with another. If you set the result attribute to myResult, for example, you would access ExecutionTime as myResult.ExecutionTime. Otherwise, you would access it as cfstoredproc.ExecutionTime.
Before implementing this tag, ensure that you understand stored procedures and their usage.
The following examples use a Sybase stored procedure; for an example of an Oracle 8 or 9 stored procedure, see cfprocparam.
<cfset ds = "sqltst"> <!--- If submitting a new book, insert the record and display confirmation ---> <cfif isDefined("form.title")> <cfstoredproc procedure="Insert_Book" datasource="#ds#"> <cfprocparam cfsqltype="cf_sql_varchar" value="#form.title#"> <cfprocparam cfsqltype="cf_sql_numeric" value="#form.price#"> <cfprocparam cfsqltype="cf_sql_date" value="#form.price#"> <cfprocparam cfsqltype="cf_sql_numeric" type="out" variable="bookId"> </cfstoredproc> <cfoutput> <h3>'#form.title#' inserted into database.The ID is #bookId#.</h3> </cfoutput> </cfif> <cfform action="#CGI.SCRIPT_NAME#" method="post"> <h3>Insert a new book</h3> Title: <cfinput type="text" size="20" required="yes" name="title"/> <br/> Price: <cfinput type="text" size="20" required="yes" name="price" validate="float" /> <br/> Publish Date: <cfinput type="text" size="5" required="yes" name="publishDate" validate="date" /> <br/> <input type="submit" value="Insert Book"/> </cfform>