在编程中我使用ADO作为数据库的接口。程序运行过程中抛出了一些异常,我记录了下来。
如下:
Message: [INTERSOLV][ODBC SQL Server driver][SQL Server]HisData not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output)
ErrorCode: -2147217865Message:[INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '*'
ErrorCode: -2147217900Message:[INTERSOLV][ODBC SQL Server driver][SQL Server]Foreign key constraint violation occurred, dbname = 'lscdatanew', table name = 'ParStation', constraint name = 'ParStation_SysAreaSet_foreign2'
ErrorCode: -2147467259现在我需要知道这些ErrorCode是在那里定义的?还有那些其它的ErrorCode?它们各自代表什么意思?因为目前程序需要对不同的错误采用不同的处理方式。
我搜索了网上的文章。大部分是在说明这些ErrorCode代表什么错误。发现如何处理。我也搜索了MSDN。在ADO 2.7 API Reference中有ErrorValueEnum资料,但是其中却没有找到我发现的这些ErrorCode。我也找过其它的一些论坛,都有没有找到满意怕答案。
我想有人应该遇到过和我同样的问题。如果你有什么样的建议,可以直接回复这贴子,也可以发Email:[email protected]。
我很希望得到一些提示和帮助。
谢谢!
如下:
Message: [INTERSOLV][ODBC SQL Server driver][SQL Server]HisData not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output)
ErrorCode: -2147217865Message:[INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '*'
ErrorCode: -2147217900Message:[INTERSOLV][ODBC SQL Server driver][SQL Server]Foreign key constraint violation occurred, dbname = 'lscdatanew', table name = 'ParStation', constraint name = 'ParStation_SysAreaSet_foreign2'
ErrorCode: -2147467259现在我需要知道这些ErrorCode是在那里定义的?还有那些其它的ErrorCode?它们各自代表什么意思?因为目前程序需要对不同的错误采用不同的处理方式。
我搜索了网上的文章。大部分是在说明这些ErrorCode代表什么错误。发现如何处理。我也搜索了MSDN。在ADO 2.7 API Reference中有ErrorValueEnum资料,但是其中却没有找到我发现的这些ErrorCode。我也找过其它的一些论坛,都有没有找到满意怕答案。
我想有人应该遇到过和我同样的问题。如果你有什么样的建议,可以直接回复这贴子,也可以发Email:[email protected]。
我很希望得到一些提示和帮助。
谢谢!
try
{
// ..... your statements
}
catch (_com_error &e)
{
printf("Error: \n");
printf("Code = %08lx\n", e.Error());
printf("Meaning = %s\n", e.ErrorMessage());
printf("Source = %s\n", (LPCSTR)e.Source());
printf("Description = %s\n", (LPCSTR)e.Description());
}
'' beginning place of your codes
On Error Goto Err_Handler
'' ..... your codes
Err_Handler:
Msgbox err.Source, err.Description
它也不知道errorcode 是什么意思吧
那个source, description来自IErrorInfo,如果你自己写过支持COM Exception的程序,就知道那个errorcode不会在ADO文档中定义了
即可以显示错误的十六进制码,然后到winerror.h文件中找错误说明。
执行SQL: select * from1 HisData
返回:[INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '*'
ErrorCode: -2147217900
执行SQL:INSERT INTO ParStation(LscNo, SuNo, AreaNo, SuName, SuAddr, IpAddr, ComType, Port, ComPar, ReMark) VALUES(3, 252, 101188864, '4号服务器程?, '', '0.0.0.0', 0, '0','','')
返回:[INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '0.0'
ErrorCode: -2147467259而在我的断开网络执行一条正确的SQL语句
SQL:select * from ParStation;
返回:[INTERSOLV][ODBC SQL Server driver][SQL Server]ct_cmd_drop(): user api layer: external error: This routine cannot be called because the command structure is in an undefined state
ErrorCode :-2147467259一样的ErrorCode使得我在程序中不知道如何处理才好。因为程序是在无人值班的地方运行。它是连接远程的监控终端,发现错误后需要反馈给终端程序,让维护人员来处理。如果把这些E文的Description全部扔过去并不利于处理。所以需要根据ErrorCode来判断,再进行分类处理。
或许我该换一种方式来解决问题,大家能点建议吗?谢谢。
看上去似乎第四个字符串少了个 ’
字符串不完整
楼主请看清楚了
那些SQL语句是用来测试ADO 返回的ErrorCode用的。