Solved

CFPROCPARAM 500 Points !

Posted on 2004-09-02
10
822 Views
Last Modified: 2013-12-24
Looking to improve the below code so that the first stored procedure and the CF Insert are done in one transaction, if  anything goes wrong a rollback is executed?

I tried my best to get the <cfquery datasource="IntranetBeta"> INSERT INTO CVs.... converted to a stored procedure but I had massive issues trying to get the cfprocparam type="In" cfsqltype="CF_SQL_BLOB"  to work.

I found that others were having the same issues (From Macromedia's Website under cfprocparam description :  -

No screen name said on Nov 7, 2003 at 8:01 AM :
The "cf_sql_blob" value for the "cfsqltype" attribute for <cfprocparam> returns the following error (from SQL Server 2000):

Description:
Attribute validation error for tag CFPROCPARAM.The value of the attribute VALUE is invalid. The value cannot be converted to a string because it is not a simple value.Simple values are booleans, numbers, strings, and date-time values.

Detail:
The value of the attribute VALUE is invalid. The value cannot be converted to a string because it is not a simple value.Simple values are booleans, numbers, strings, and date-time values.

When a <cfqueryparam> is used with the equivalent values, it works. Go figure.



My Code : -

<cfif IsDefined("process")>

<!--- Multi-parameter stored procedure --->
<cfstoredproc procedure="AddCand" datasource="IntranetBeta">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Title" value="#Form.Title#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="FirstName" value="#Form.FirstName#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="MiddleName" value="#Form.MiddleName#"null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="LastName" value="#Form.LastName#" null="No">
<cfprocparam type="I n" cfsqltype="CF_SQL_VARCHAR" dbvarname="JobTitle" value="#Form.JobTitle#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Address" value="#Form.Address#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="TownCity" value="#Form.TownCity#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Country" value="#Form.Country#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="PostCode" value="#Form.PostCode#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="HomeNo" value="#Form.HomeNo#" null="No"
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="MobileNo" value="#Form.MobileNo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="WorkNo" value="#Form.WorkNo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="EmergencyNo" value="#Form.EmergencyNo#" null="No">
 <cfprocparam type="In" cfsqltype="CF_SQL_TINYINT" dbvarname="NoticePeriod" value="#Form.NoticePeriod#" null="No">     <cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="MaritalStatus" value="#Form.MaritalStatus#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Email" value="#Form.Email#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_DATETIME" dbvarname="DOB" value="#Form.DOB#" null="NO">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Gender" value="#Form.Gender#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Status" value="#Form.Status#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="SalaryFrom" value="#Form.SalaryFrom#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="SalaryTo" value="#Form.SalaryTo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="LastUpdatedUser" value="#getauthuser()#" null="No">
<cfprocparam type="out" cfsqltype="CF_SQL_INTEGER" variable="CandID">
</cfstoredproc>



<cfoutput>
      <h3>'#form.lastname#' inserted into candidate Table. The CANDID is #CandID#.</h3>
</cfoutput>

<cfif IsDefined('form.CVFile')>
<cffile action="upload" destination="d:\temp\" filefield="CVFile" nameconflict="makeunique">
     <cfset VARIABLES.ClientFile = CFFILE.ClientFile>
     <cfset VARIABLES.FullMimeType = "#CFFILE.ContentType#/#CFFILE.ContentSubType#">
     <cffile action="readbinary" file="#CFFILE.ServerDirectory#\#CFFILE.ServerFile#" variable="VARIABLES.FileBinaryContent">
     <cfquery datasource="IntranetBeta">
          INSERT INTO CVs (CandIDFK, FileName, FileType, FileContent)
VALUES (
                    <cfqueryparam cfsqltype="cf_sql_integer" value="#CandID#">,
                    <cfqueryparam cfsqltype="cf_sql_varchar" value="#VARIABLES.ClientFile#">,
                    <cfqueryparam cfsqltype="cf_sql_char" value="#VARIABLES.FullMimeType#">,
                    <cfqueryparam cfsqltype="cf_sql_blob" value="#VARIABLES.FileBinaryContent#">
               )
     </cfquery>
     <cffile action="delete" file="#CFFILE.ServerDirectory#\#CFFILE.ServerFile#">
   <cfoutput>done</cfoutput>
</cfif>

 
<cfelse>

<cfform name="CandAdd" action="CandAdd.cfm" method="post" enctype="multipart/form-data">

<input type="hidden" name="Process" value="1">

 <table width="100%"  border="0" cellspacing="20" cellpadding="0" align="center">
  <tr>
    <td colspan="2"><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="422184">
        <td valign="middle" colspan="4" align="center"><font class="menuhead">REGISTER CANDIDATE</font></td>
         </tr>
        <tr bgcolor="cccccc">
        <td colspan="4"><font class="mainBlack">Personal Details</font></td>
      </tr>
      <tr>
        <td width="19%"><font class="smallBlack">Title</font></td>
        <td width="32%"><cfinput class="text" name="Title" type="text"size="35"></td>
        <td width="16%"><font class="smallBlack">DOB</font></td>
        <td width="33%"><cfinput class="text" name="DOB" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">First Name</font></td>
        <td><cfinput class="text" name="FirstName" type="text"size="35"></td>
        <td><font class="smallBlack">Gender</font></td>
        <td><cfinput class="text" name="Gender" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Middle Name</font></td>
        <td><cfinput class="text" name="MiddleName" type="text"size="35"></td>
        <td><font class="smallBlack">Marital Status</font></td>
        <td><cfinput class="text" name="MaritalStatus" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Last Name</font></td>
        <td><cfinput class="text" name="LastName" type="text"size="35"></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="cccccc" >
        <td colspan="2"><font class="mainBlack">Address Details</font></td>
        </tr>
      <tr>
        <td width="39%"><font class="smallBlack">Address</font></td>
        <td width="61%"><cfinput class="text" name="Address" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Town/City</font></td>
        <td><cfinput class="text" name="TownCity" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Country</font></td>
        <td><cfinput class="text" name="Country" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Post Code</font></td>
        <td><cfinput class="text" name="PostCode" type="text"size="35"></td>
      </tr>
    </table></td>
    <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0"bgcolor="f2f1ee" >
      <tr bgcolor="cccccc">
        <td colspan="2"><font class="mainBlack">Career Details</font></td>
        </tr>
      <tr>
        <td><font class="smallBlack">Sector Experience</font></td>
        <td><cfinput class="text" name="SectorExp" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Job Title</font></td>
        <td><cfinput class="text" name="JobTitle" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Salary Expectations</font></td>
        <td><cfinput class="text" name="SalaryFrom" type="text"size="20">
        to
          <cfinput class="text" name="SalaryTo" type="text"size="20"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Notice Period</font></td>
        <td><cfinput class="text" name="NoticePeriod" type="text"size="35"></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="cccccc">
        <td colspan="2"><font class="mainBlack">Contact Details</font></td>
        </tr>
      <tr>
        <td width="39%"><font class="smallBlack">Home No</font></td>
        <td width="61%"><cfinput class="text" name="HomeNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Mobile No</font></td>
        <td><cfinput class="text" name="MobileNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Work No</font></td>
        <td><cfinput class="text" name="WorkNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Emergency No</font></td>
        <td><cfinput class="text" name="EmergencyNo" type="text" size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Email Address</font></td>
        <td><cfinput class="text" type="text" name="Email" size="35"></td>
      </tr>
    </table></td>
    <td width="50%"><div align="center">
      <table width="100%"  border="0" cellspacing="20" cellpadding="0">
        <tr>
          <td width="24%"><font class="smallBlack">Attach CV</font></td>
          <td width="76%"><input type="file" name="CVFile"></td>
            </tr>
        <tr>
          <td colspan="2"><div align="center"><font class="smallBlack">Status</font></div><cfinput class="text" name="Status" type="text"size="35"></td>
          </tr>
      </table>
    </div></td>
  </tr>
</table>

<table width="90%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right"><input class="text" type="Submit" value="Add Candidate"></td>
  </tr>
</table>

</cfform>
</cfif>


The above code works fine I just want to make it a bit more slicker ie if one query fails everything is rolled back


500 Points for Grabs !!  (Ohh I have updated CF 6.1 with the lastest updater)

Jonny
0
Comment
Question by:jturkington
  • 5
  • 3
10 Comments
 
LVL 35

Expert Comment

by:mrichmon
ID: 11964842
place inside <cftransaction action="begin">

Then <cftransaction action="commit"></cftransaction> at the end.


With queries this autorolls back when one fails.  I am not sure how it will work with a stored proceedure.  

Another solution is to send the parameters to the proc for the insert too and have the proc do both...
0
 

Author Comment

by:jturkington
ID: 11965018
Tried sending the parameters to the proc, cant use the CF_SQL_BLOB with cfprocparam as mentioned above

Jonny
0
 
LVL 35

Expert Comment

by:mrichmon
ID: 11965354
oh I see that is in the insert portions - sorry overlooked that.

Well then try the cftransaction method, but as I mentioned I do not know if it can rollback a transaction....
0
 
LVL 35

Expert Comment

by:mrichmon
ID: 11965368
You could manually test by putting <cftransaction action="rollback"> instead of commit and see if it properly rolled back since this would force a rollback every time.

Then put it back if it dooes work and you will know that on a fialure it will successfully rollback....
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:jturkington
ID: 11965670
Can you tell me where exactly to stick the cftransaction tags in my code as im having no success

Thanks for your help

Jonny
0
 
LVL 35

Expert Comment

by:mrichmon
ID: 11965806
Well it is kind of hard because your CF code is intermixed with the html portion of the page which is generally a bad idea, and I am having trouble matching the cfifs since it is hard to see indenting on this site, but here is a shot....

<cfif IsDefined("process")>

<cftransaction action="begin">

<!--- Multi-parameter stored procedure --->
<cfstoredproc procedure="AddCand" datasource="IntranetBeta">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Title" value="#Form.Title#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="FirstName" value="#Form.FirstName#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="MiddleName" value="#Form.MiddleName#"null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="LastName" value="#Form.LastName#" null="No">
<cfprocparam type="I n" cfsqltype="CF_SQL_VARCHAR" dbvarname="JobTitle" value="#Form.JobTitle#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Address" value="#Form.Address#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="TownCity" value="#Form.TownCity#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Country" value="#Form.Country#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="PostCode" value="#Form.PostCode#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="HomeNo" value="#Form.HomeNo#" null="No"
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="MobileNo" value="#Form.MobileNo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="WorkNo" value="#Form.WorkNo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="EmergencyNo" value="#Form.EmergencyNo#" null="No">
 <cfprocparam type="In" cfsqltype="CF_SQL_TINYINT" dbvarname="NoticePeriod" value="#Form.NoticePeriod#" null="No">     <cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="MaritalStatus" value="#Form.MaritalStatus#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Email" value="#Form.Email#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_DATETIME" dbvarname="DOB" value="#Form.DOB#" null="NO">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Gender" value="#Form.Gender#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" dbvarname="Status" value="#Form.Status#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="SalaryFrom" value="#Form.SalaryFrom#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="SalaryTo" value="#Form.SalaryTo#" null="No">
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="LastUpdatedUser" value="#getauthuser()#" null="No">
<cfprocparam type="out" cfsqltype="CF_SQL_INTEGER" variable="CandID">
</cfstoredproc>




<cfif IsDefined('form.CVFile')>
<cffile action="upload" destination="d:\temp\" filefield="CVFile" nameconflict="makeunique">
     <cfset VARIABLES.ClientFile = CFFILE.ClientFile>
     <cfset VARIABLES.FullMimeType = "#CFFILE.ContentType#/#CFFILE.ContentSubType#">
     <cffile action="readbinary" file="#CFFILE.ServerDirectory#\#CFFILE.ServerFile#" variable="VARIABLES.FileBinaryContent">
     <cfquery datasource="IntranetBeta">
          INSERT INTO CVs (CandIDFK, FileName, FileType, FileContent)
VALUES (
                    <cfqueryparam cfsqltype="cf_sql_integer" value="#CandID#">,
                    <cfqueryparam cfsqltype="cf_sql_varchar" value="#VARIABLES.ClientFile#">,
                    <cfqueryparam cfsqltype="cf_sql_char" value="#VARIABLES.FullMimeType#">,
                    <cfqueryparam cfsqltype="cf_sql_blob" value="#VARIABLES.FileBinaryContent#">
               )
     </cfquery>
     <cffile action="delete" file="#CFFILE.ServerDirectory#\#CFFILE.ServerFile#">
<cftransaction action="commit">
</cftransaction>


<cfoutput>
     <h3>'#form.lastname#' inserted into candidate Table. The CANDID is #CandID#.</h3>
</cfoutput>
   <cfoutput>done</cfoutput>
</cfif>

 
<cfelse>

<cfform name="CandAdd" action="CandAdd.cfm" method="post" enctype="multipart/form-data">

<input type="hidden" name="Process" value="1">

 <table width="100%"  border="0" cellspacing="20" cellpadding="0" align="center">
  <tr>
    <td colspan="2"><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="422184">
        <td valign="middle" colspan="4" align="center"><font class="menuhead">REGISTER CANDIDATE</font></td>
        </tr>
       <tr bgcolor="cccccc">
        <td colspan="4"><font class="mainBlack">Personal Details</font></td>
      </tr>
      <tr>
        <td width="19%"><font class="smallBlack">Title</font></td>
        <td width="32%"><cfinput class="text" name="Title" type="text"size="35"></td>
        <td width="16%"><font class="smallBlack">DOB</font></td>
        <td width="33%"><cfinput class="text" name="DOB" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">First Name</font></td>
        <td><cfinput class="text" name="FirstName" type="text"size="35"></td>
        <td><font class="smallBlack">Gender</font></td>
        <td><cfinput class="text" name="Gender" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Middle Name</font></td>
        <td><cfinput class="text" name="MiddleName" type="text"size="35"></td>
        <td><font class="smallBlack">Marital Status</font></td>
        <td><cfinput class="text" name="MaritalStatus" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Last Name</font></td>
        <td><cfinput class="text" name="LastName" type="text"size="35"></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="cccccc" >
        <td colspan="2"><font class="mainBlack">Address Details</font></td>
        </tr>
      <tr>
        <td width="39%"><font class="smallBlack">Address</font></td>
        <td width="61%"><cfinput class="text" name="Address" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Town/City</font></td>
        <td><cfinput class="text" name="TownCity" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Country</font></td>
        <td><cfinput class="text" name="Country" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Post Code</font></td>
        <td><cfinput class="text" name="PostCode" type="text"size="35"></td>
      </tr>
    </table></td>
    <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0"bgcolor="f2f1ee" >
      <tr bgcolor="cccccc">
        <td colspan="2"><font class="mainBlack">Career Details</font></td>
        </tr>
      <tr>
        <td><font class="smallBlack">Sector Experience</font></td>
        <td><cfinput class="text" name="SectorExp" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Job Title</font></td>
        <td><cfinput class="text" name="JobTitle" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Salary Expectations</font></td>
        <td><cfinput class="text" name="SalaryFrom" type="text"size="20">
        to
          <cfinput class="text" name="SalaryTo" type="text"size="20"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Notice Period</font></td>
        <td><cfinput class="text" name="NoticePeriod" type="text"size="35"></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="f2f1ee">
      <tr bgcolor="cccccc">
        <td colspan="2"><font class="mainBlack">Contact Details</font></td>
        </tr>
      <tr>
        <td width="39%"><font class="smallBlack">Home No</font></td>
        <td width="61%"><cfinput class="text" name="HomeNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Mobile No</font></td>
        <td><cfinput class="text" name="MobileNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Work No</font></td>
        <td><cfinput class="text" name="WorkNo" type="text"size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Emergency No</font></td>
        <td><cfinput class="text" name="EmergencyNo" type="text" size="35"></td>
      </tr>
      <tr>
        <td><font class="smallBlack">Email Address</font></td>
        <td><cfinput class="text" type="text" name="Email" size="35"></td>
      </tr>
    </table></td>
    <td width="50%"><div align="center">
      <table width="100%"  border="0" cellspacing="20" cellpadding="0">
        <tr>
          <td width="24%"><font class="smallBlack">Attach CV</font></td>
          <td width="76%"><input type="file" name="CVFile"></td>
          </tr>
        <tr>
          <td colspan="2"><div align="center"><font class="smallBlack">Status</font></div><cfinput class="text" name="Status" type="text"size="35"></td>
         </tr>
      </table>
    </div></td>
  </tr>
</table>

<table width="90%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right"><input class="text" type="Submit" value="Add Candidate"></td>
  </tr>
</table>

</cfform>
</cfif>
0
 

Author Comment

by:jturkington
ID: 11970573
No go error received :-

The tag &lt;cfif&gt;, on line 50, column 2, requires an end tag.  
The &lt;cfif&gt; tag requires an end tag to nest within &lt;cftransaction&gt;, which began on line 13, column 2

Any other suggestions or maybe a better way to structure the code ie separate CF code from HTML ?

Thanks for your help

Jonny
0
 
LVL 11

Accepted Solution

by:
hart earned 250 total points
ID: 11970978
ok how about this...

you put everything into the stored proc...
i understand that u r having problems in the blob field.

instead of inserting the whole file data... why not keep it in a folder and just store the path of the folder in the database...
this way only thing u have to read is the path and the file name from the db and then just read the data from the file..

And your transaction checks also can be put in the stored procedure...
by error catching in the stored proc itself...

Regards
Hart
0
 
LVL 35

Assisted Solution

by:mrichmon
mrichmon earned 250 total points
ID: 11973846
Well that error is not related to what I added.  I also moved the cfoutput, but that shouldn't have done anything.

But you can see where I put the cftransaction tags.

Try just putting those tags into your actual code....
0

Featured Post

Free Gift Card with Acronis Backup Purchase!

Backup any data in any location: local and remote systems, physical and virtual servers, private and public clouds, Macs and PCs, tablets and mobile devices, & more! For limited time only, buy any Acronis backup products and get a FREE Amazon/Best Buy gift card worth up to $200!

Join & Write a Comment

Most ColdFusion developers get confused between the CFSet, Duplicate, and Structcopy methods of copying a Structure, especially which one to use when. This Article will explain the differences in the approaches with examples; therefore, after readin…
Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now