PowerBuilder没有正确存储SQL Server的错误消息

时间:2011-08-23 18:27:14

标签: sql-server powerbuilder

在我们的应用程序中使用DataWindow中的SqlErrText时,我似乎遇到了一个奇怪的问题。

DataWindow执行一个存储过程,我们称之为vp_ut_storedProc,在我的情况下,它会在更新DataWindow时抛出错误。

当我进入函数为我们的应用程序构建错误消息时,SqlErrText按如下方式传入(作为参数 asErrText ):

SQLSTATE = 42000
Microsoft SQL Server Native Client 10.0
TimestampNV|Someone Has Updated the Record. Please Refresh.

No changes made to the database

execute dbo.vp_ut_storedProc

我知道PowerBuilder会收到整个错误文本,这是一件好事。但是,当我们尝试将错误文本保存到局部变量

isErrText = asErrText

isErrText的值为: SQLSTATE = 42000

所以,出于某种原因,它完全忽略了第二行之后的所有内容。我认为这与PowerBuilder在字符串中读取的方式有关,但我不知道为什么会这样。

我还应该注意,它不仅限于这一个DataWindow。它发生在很多人身上。

1 个答案:

答案 0 :(得分:0)

将此信息放入数据窗口的dberror事件中

  

string s_temp

     

长l_start,l_end

     

l_start = 42 + Pos(sqlerrtext,'Microsoft SQL Server Native Client 10.0')

     

l_end = Pos(sqlerrtext,sqlsyntax) - l_start - 3

     

IF l_end< = 0 THEN l_end = Len(sqlerrtext) - l_start

     

s_temp = Mid(sqlerrtext,l_start,l_end)

     

fw_msg(s_temp)//可以在messagebox(this.title,s_temp)中写这个//而不是

     

返回1

如果插入或选择错误。它会忽略语法并输出错误。如果它有不同的错误。它显示了errcode的其余部分