【问题标题】:SQL Server Backup Database over ODBC通过 ODBC 的 SQL Server 备份数据库
【发布时间】:2008-11-10 16:31:10
【问题描述】:

我正在尝试编写一个能够从 Microsoft SQL Server 数据库导入和导出特定数据库以及用户和登录名的程序。我的代码和 ODBC 之间有一个抽象层,我们的许多其他软件都使用该抽象层。抽象层通常在关闭自动提交的情况下运行并自行处理事务,但由于 BACKUP 命令不喜欢在任何事务中运行,我正在使用该层的另一种方法,称为 executeDirect,它在自动提交的情况下运行它。

该方法使用 SQLExecDirect 函数来运行 BACKUP 命令。完成后,函数返回 SUCCESS_WITH_INFO,因为 BACKUP 命令喜欢提供三行输出。然后代码尝试使用 SQLGetDiagField 获取输出,并能够从记录 #1 中收集第一行,但没有记录 #2。

该方法要做的最后一件事是将连接重置为关闭自动提交,但是当它尝试这样做时,会发生错误,说“连接正忙于处理来自另一个命令的结果”,SQL 状态为“HY000”。所以,很明显,连接想要汇出另外两行输出,但我不知道如何让它这样做。

【问题讨论】:

    标签: sql-server odbc


    【解决方案1】:

    BACKUP DATABASE 命令作为批处理运行,需要调用 SQLMoreResults 才能继续备份。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2012-12-12
      相关资源
      最近更新 更多