首页 > 解决方案 > 我在使用 PyODBC 和 SQL Express Server 2008 进行备份时做错了什么

问题描述

有关详细信息,我正在运行最新版本的 python 和 PyODBC,并尝试远程实例化 SQL 上的备份。我对SQL不太了解。我试过用谷歌搜索这个问题,并尝试了以下一些技巧,包括使用 .nextset() 和尝试不同的编码以防万一。我看到带有 SQL 服务器的 PC 的本地网络出现了大幅增长,但它很快就消失了。我似乎也无法运行存储过程,因为它似乎永远不会找到它,尽管它存在并且能够使用 SSMS 或远程 PC 上的 SSMS 从我的本地计算机运行。据我所知,我还完全访问了访问 sql 服务器的远程帐户

以下是相关功能:

    def back_up_and_restore(self):

        if self.Arbin not in [3, 4]:
            self.errorString = "Not remote server!"
            return self.errorString

        self.cnxn = pyodbc.connect(self.connectionString(self.db[0]))
        self.cursor = self.cnxn.cursor()
        self.cnxn.autocommit = True
        if self.Arbin == 3:
            folder = "Fred"
        else:
            folder = "George"


         query = r"BACKUP DATABASE [%s] TO  DISK = N'\\10.130.130.5\TestLab\DATA\%s\ArbinMasterData.bak' WITH NOFORMAT, INIT,  NAME = N'ArbinMasterData-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" % ("ArbinMasterData", folder)
        #query = "{CALL BackUp%s2}" % folder
        query.encode(encoding='UTF-8')
        print(query)
        self.cursor.execute(query)
        time.sleep(2)
        while self.cursor.nextset():
            pass
        self.cnxn.close

当我运行该功能时,它很快就死了,什么也没说。如果我尝试运行存储过程,它会说存储过程不存在。任何帮助都会很棒。

标签: pythonsql-serverpyodbcremote-server

解决方案


如果您需要 PyODBC 进行备份的示例,此代码非常有用。不幸的是,我正在查看 George 文件夹而不是 Fred。


推荐阅读