求救:在查询分析器中运行一个使用openrowset()函数从DBF导入到SQL Server表中的存储过程,执行期间强行关闭之后,无法再次执行!!
spoky 2004-04-23 02:11:41 1。在delphi程序中使用CreateProcess()新建一个进程,这个进程其实就是调用isqlw.exe(查询分析器)在后台运行一个使用openrowset()函数从一个DBF导入到SQL Server一个表中的存储过程,在这个isqlw.exe进程执行期间强行关闭这个isqlw.exe进程之后,以后再次执行同样的操作就出现错误。即时重新启动系统和服务器都无法正常运行这个存储过程了。
2。存储过程中使用的openrowset()函数如下:
insert tbl1(col1,col2)
select col1,col2 from OpenRowSet('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB=C:\Table1.DBF;SourceType=DBF','select * from C:\Table1.DBF ')
3。运行期间出现错误提示:
服务器: 消息 7399,级别 16,状态 1,行 1OLE DB 提供程序 MSDASQL 报错。提供程序未给出有关错误的任何信息。OLE DB 错误跟踪[OLE/DB Provider MSDASQL ICommandText::Execute returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
4。在还没有强行关闭线程之前,每天作同样的操作都是没有问题的。同时在出错之后,将这个SQL Server数据库放到其他机器上,执行同样的导入操作也都没有问题。
5。所以想问:是不是因为在openrowset()过程中出错之后,对SQL Server服务器或者这台电脑造成了什么影响,或者损坏了某些文件或者链接?有没有什么办法可以处理的呢?无限感激!!!