使用PyODBC和sqlexpressserver2008备份有什么问题吗

2024-06-01 03:58:58 发布

您现在位置:Python中文网/ 问答频道 /正文

有关详细信息,我正在运行python和PyODBC的最新版本,并尝试在SQL上远程实例化一个备份。我不太懂SQL。我试过用google搜索这个问题,也试过下面的一些技巧,包括使用.nextset()和尝试不同的编码以防万一。我看到在使用SQL server的PC机的本地网络上有一个很大的激增,但它很快就变成了零。我似乎也不能运行一个存储过程,因为它似乎永远也找不到它,尽管它已经存在,并且能够从我的本地计算机上使用SSMS或远程PC上的SSMS运行。而且,据我所知,我已经给了完整的访问sql server的远程帐户的访问权限

以下是相关功能:

    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

当我运行这个函数时,它很快就消失了,什么也没说。如果我尝试运行一个存储过程,它会说该存储过程不存在。任何帮助都会很好


Tags: selfsqlif远程server过程folderquery