Хорошо, поэтому я пытаюсь вызвать ошибку в 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
Мой управляемый код C ++ в VS2008 для улавливания 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 ++.Если сообщение raiserror включает дату и время в виде CHAR, excp-> Message будет пустым.Если я удаляю дату и время как CHAR и просто отправляю жестко закодированное сообщение raiserror, такое как «Ошибка здесь происходит», тогда сообщение excp-> заполнено и заполнено сообщением raiserror.тип активности?Что я могу сделать по обе стороны этого вызова.,,то есть, либо на стороне SQL, либо на стороне C ++, чтобы эта строка даты и времени была включена в сообщение raiserror ????
Пожалуйста, помогите.Я застрял!
СПАСИБО!