如果包含转换为Char(10)的日期时间,则T-SQL Raiserror会丢失消息

好的,所以我试图在T-SQL(SQL-2000)中引发错误。基本的Sql代码看起来像这样。 。 。
declare @TmsString  char(10),
        @TmsLast    datetime,
        @UserMsg    varchar(500)

select @TmsLast = getdate()

select  @TmsString = ltrim(rtrim(convert(char(10), @TmsLast, 101)))
select  @UserMsg = '*' + ltrim(rtrim(cast(@TmsString as char))) + '*'

raiserror (@UserMsg, 12, 1)
return
我在VS2008中管理C ++代码以捕获raiserror看起来像这样。 。 。
System::Void Sql_ExecuteQuery (SqlCommand ^ sqlCommand, DataSet ^ OutDS, String ^ TableName)
{
   SqlConnection   ^ sqlConnect ;
   SqlDataAdapter  ^ sqlDA ;

   try
   {
      sqlDA = gcnew SqlDataAdapter () ;

      sqlConnect = gcnew SqlConnection (_ConnString) ;
      sqlConnect->Open () ;

      sqlCommand->Connection = sqlConnect ;

      sqlDA->SelectCommand = sqlCommand ;
      sqlDA->Fill (OutDS, TableName) ;
   }
   catch (Exception ^ excp)
   {
      throw gcnew Exception (excp->Message->ToString()) ;
   }
   finally
   {
      sqlConnect->Close () ;
   }
}
现在,我在“C ++”代码中的catch处有一个断点。如果raiserror消息将datetime包含为CHAR,则excp-> Message为空。如果我将日期时间删除为CHAR并且只发送硬编码的raiserror消息,例如“此处发生错误”,那么excp->消息已完成并填写了raiserror消息。 有没有人见过这种类型的活动?我可以在此电话的任何一方做什么。 。 。即,在SQL端或C ++端,以获取此日期时间字符串包含在raiserror消息中???? 请帮忙。我卡住了! 谢谢 !     
已邀请:
你正在执行的是
declare @UserMsg    varchar(500)
select  @UserMsg = '*' + convert(char(10), getdate(), 101) + '*'
raiserror (@UserMsg, 12, 1)
return
我想你想以某种方式结合用户的消息。     

要回复问题请先登录注册