Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从cfstoredproc访问RAISEERROR消息_Sql_Stored Procedures_Coldfusion_Raiserror_Cfstoredproc - Fatal编程技术网

Sql 从cfstoredproc访问RAISEERROR消息

Sql 从cfstoredproc访问RAISEERROR消息,sql,stored-procedures,coldfusion,raiserror,cfstoredproc,Sql,Stored Procedures,Coldfusion,Raiserror,Cfstoredproc,我有一个SQL存储过程,在某些情况下,如果失败,它将返回-1的结果,但也会通过RAISERROR命令返回一条消息,例如: BEGIN RAISERROR ('Error %i has occurred', 11, 1, 0) RETURN -1 END 我使用cfstoredproc通过coldfusion访问此文件,例如: <cfstoredproc procedure="sp_return" datasource="myDatasource" returncode

我有一个SQL存储过程,在某些情况下,如果失败,它将返回-1的结果,但也会通过RAISERROR命令返回一条消息,例如:

BEGIN

    RAISERROR ('Error %i has occurred', 11, 1, 0)
    RETURN -1

END
我使用cfstoredproc通过coldfusion访问此文件,例如:

<cfstoredproc procedure="sp_return" datasource="myDatasource" returncode="yes">
<cfdump var="#cfstoredproc#">

但是返回的结构只包含ExecutionTime和StatusCode键。是否有任何方法可以访问已返回的错误消息。e、 g.向用户显示

<cftry>

<cfstoredproc  procedure = "my_Proc" dataSource = "#DB#" returnCode = "No">
   <cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR" variable="myvar"   value="#someval#" null="No"> 
   <cfprocresult name="my_Response">
</cfstoredproc>

<cfcatch type="any">

   <cflog file="ProcError" text="Message = #cfcatch.message# Detail= #cfcatch.detail#">

</cfcatch>
</cftry>
谢谢

汤姆


p、 我会用“cfstoredproc”标记,但我无法创建新标记。

您是否尝试过cfproclesult?说:

将查询对象与 由存储的 程序


不确定您使用什么数据库,但对于Oracle,我只是使用ColdFusion异常来冒泡Oracle异常。-#cfcatch.message#和#cfcatch.detail#是您希望向用户反馈的内容

<cftry>

<cfstoredproc  procedure = "my_Proc" dataSource = "#DB#" returnCode = "No">
   <cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR" variable="myvar"   value="#someval#" null="No"> 
   <cfprocresult name="my_Response">
</cfstoredproc>

<cfcatch type="any">

   <cflog file="ProcError" text="Message = #cfcatch.message# Detail= #cfcatch.detail#">

</cfcatch>
</cftry>


Hi,我用cfproclesult尝试了原始响应中的查询。当转储这个变量时,我得到一个变量未定义的错误。从读取文档看,这似乎是用于返回查询,而我的存储过程返回-1和错误消息。请参阅,您必须进行选择以填充此变量,例如“选择‘这是错误文本’作为错误”。我不是SQL server专家,但我认为可以处理过程中的错误,并使用SELECT返回结果。当我尝试在我的代码周围包装一个cftry/cfcatch块时,这没有什么区别-没有抛出coldfusion错误,所以我想没有什么可以捕获的。我确认使用SQL Server 2005和Adobe CF 8确实在cfcatch中收到引发的错误。详细信息:[Macromedia][SQLServer JDBC Driver][SQLServer]出现错误0occurred@Loftx-看起来很奇怪,但在“自定义调试输出”下的“调试输出设置”中有一个关于在调试中显示异常信息的设置。我在关闭健壮调试的服务器中使用该技术,但可能需要检查该字段。在你的盒子上吗?严重性为11的错误很重要;ColdFusion似乎忽略了10及以下的任何内容,但11将导致异常。