使用ODBC备份Sqlserver数据库失败

软件原来是使用ADO访问LocalDB,现在切换为开源ODBC的C++封装nanodbc,

调试后其他一切正常,可BACKUP DATABASE命令虽然返回成功,但实际备份却没有成功,

查了下资料,在微软网站上发现一个回答

This is by design. Your application must call SQLMoreResults to ensure all the results of the statement are consumed and hence completed. BACKUP sends several messages back to the user to report progress and statistics, and SQLExecDirect returns when the first of these messages is returned. This does not mean the backup has fully completed though. Once SQLMoreResults returns SQL_NO_DATA, you can safely close the statement handle, as you‘ve observed.

执行BACKUP命令后必须再调用SQLMoreResults,在nanodbc不能使用just_execute,需要使用execute且调用result::next_result

时间: 2024-08-10 10:29:05

使用ODBC备份Sqlserver数据库失败的相关文章

ODBC链接SQLServer数据库

1 #include <QtSql/QSqlDatabase> 2 #include <QMessageBox> 3 #include <QSqlError> 4 #include <QSqlQuery> 5 #include <QDebug> 6 7 8 int main(int argc,char* argv[]) 9 { 10 11 // 方法一 :通过DSN建立连接.DSN即数据源名称. 12 //下面例子sql server上的dbHo

动态备份SQL-SERVER数据库——SQLDMO

转载:http://www.cnblogs.com/liulanglang/archive/2007/12/04/981812.html 上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过.经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享. 大家最常见的是使用sql命令来进行数据库备份, 最常用的sql语句如下: backup [dbname]   to   disk=[路径+文件名] r

使用存储过程备份SqlServer数据库

存储过程代码如下所示: CREATE PROCEDURE [dbo].[SP_BackupDB] ( @BackPath NVARCHAR(200), --备份路径,如:D:\Backup\ @BackDbName NVARCHAR(50), --需要备份的数据库名称 @BackName NVARCHAR(50)=@BackDbName OUTPUT, --备份后的数据库名称,不需要.bak后缀.若不传,则等同于@BackDbName @BackPathIsDate BIT=1, --备份路径是

C#_备份sqlserver数据库

C# 代码备份数据库 ,不需要 其他 DLL protected void Button1_Click(object sender, EventArgs e)    {        ///        ///备份方法        ///        SqlConnection conn = new SqlConnection("Server=.; Database=aaaa; User ID=sa; Password=sa;"); SqlCommand cmdBK = new

Sql语句备份Sqlserver数据库

BACKUP DATABASE [POS_YiZhuang]TODISK = N'C:\数据库\POS_YiZhuang2016-09-20-3.bak'WITHNAME = N'POS_YiZhuang - 备份',NOFORMAT, NOINIT, SKIP,STATS = 5 --POS_YiZhuang 为数据库名称--C:\数据库\POS_YiZhuang2016-09-20-3.bak 为数据库所在服务器的路径

使用bat批处理文件定时自动备份sqlserver数据库

一.创建一个sql文件,在里面写入以下代码: USE MasterGOdeclare @str varchar(100)set @str='D:\sqlserver14backup\CDB\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'BACKUP DATABASE [CDB] TO [email protected]WITH RETAINDAYS=15,NOFORMAT

备份sqlserver 数据库到远程主机脚本

mssqlBackup.py: # Name: mssqlBackup.py # Purpose:  # # Author: yanglixue # # Created: 2015/04/01 #------------------------------------------------------------------------------- import pymssql import datetime import logging import traceback import os

[SqlServer]数据库备份-问题及解决

正常数据库备份 备份:右键要备份的数据库-任务-备份 还原:右键数据库-还原数据库 问题1-"还原数据库备份时报错"介质集有2个介质簇,但只提供了1个.必须提供所有成员"的解决办法" 解决: 因为框中有几个备份路径就会备份到几处,并不是选中了什么就备份到哪.所以选别的备份路径要记得删掉其他路径,否则还原时这几个备份都要加载进来才能还原. 笔者数据库的备份路径选择默认的备份路经,再拷到u盘,备份还原成功. 问题2-高版本向低版本数据库备份:由于对方的数据库是2012

创建数据库失败((Microsoft.SqlServer.Smo)) 执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo

机房收费系统完成了,但是我是在笔记本上敲得,没有实现异地发布,结局只能是被PASS掉了~回来重新导出自己的数据库到台式机上,由于我笔记本装的SQL和台式机版本是不一样的,所以遇到一些问题,具体解决方法请参考博客:http://blog.csdn.net/mascf/article/details/38644759 导出脚本成功但是新建数据库又出现问题,新建过程中出现如下问题: (但是忘记截图,关键词如下) 创建数据库失败((Microsoft.SqlServer.Smo)) 执行 Transac