怪异的SqlServer备份

Posted on 2010-05-21 16:51  blackcat  阅读(710)  评论(3编辑  收藏

遇到一个SqlServer的怪异问题,裹足不前,请各路大侠帮忙一看。

通过ODBC访问SqlServer 2005,执行备份语句,

use master backup database XXX to disk 'c:\ab.dat'

然后眼睁睁看着备份文件生成,然后自动又消失。实在摸不着头脑。

 

PS:

  程序是C++的,登录用户不是SA,是新建立的一个拥有管理员权限的用户。同时这个程序和服务器不在同一个OS。

 

这个问题据说上次有人遇到过,解决方式是让工作线程等待几秒钟。但是据我的观察,语句执行完毕后,不等连接关闭,备份文件自动就消失了。。。。。

太神奇了。

同样的语句,在数据库管理器中执行时没有问题的。

坐等各路大侠拔刀相助。

 

找到解决方案:
首先,为什么文件会自动删除,应该是Sql2005 Native Client执行完backup命令后,会有一个通信等待一个事件,应该是服务器给客户端送点东西,如果等不到,就把完成的工作取消了。
解决方案,我在ODBC调用中,执行完sql语句之后,在调用
SQL_API SQLRowCount(SQLHSTMT StatementHandle, SQLLEN* RowCount);
之前,调用Sleep,就OK了。又是曲线救国
 

 

posts - 37, comments - 34, trackbacks - 0, articles - 0

Copyright © 2020 blackcat
Powered by .NET 5.0.0-rc.2.20475.5 on Kubernetes