我正在从用户读取Server数据库的连接字符串,这里用随机字符串表示。当我将随机字符串打印到控制台时,它看起来是完美的,我已经检查过它十几次了。但是,连接将失败。
pypyodbc.Error:(IM002 002,IM002
如果我显式地将完全相同的字符串传递给游标,则连接可以正常工作。我是否需要对string变量做任何特定的操作才能使用它?
randomstring = ShowConnString(self.cframe).connstringtext
print(randomstring)
self.conn = pypyodbc.connect(randomstring)
#self.conn = pypyodbc.connect(driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password')
编辑:打印(随机字符串)输出:
Pypyodbc.connect(driver=‘{ Server}',server=’(本地)‘,数据库=’审核‘,uid='sa',pwd=’密码‘)
发布于 2017-03-03 01:15:46
首先要注意的是,第二个(注释掉的)示例不是与“显式连接字符串”连接,而是使用一系列关键字参数("kwargs")来指定driver
、server
等。注意关键字参数表单之间的细微差别..。
self.conn = pypyodbc.connect(driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password')
..。以及连接字符串形式:
self.conn = pypyodbc.connect('driver={SQL Server};server=(local);database=Audit;uid=sa;pwd=password')
现在如果您的randomstring
变量确实包含
pypyodbc.connect(driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password')
那么它肯定不是一个有效的ODBC连接字符串。即使它只是包含
driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password'
这仍然不是一个有效的连接字符串,因为项目由逗号(不是分号)分隔,并且值周围有引号。在将randomstring
值传递给.connect
方法之前,您需要将它的内容转换为适当的ODBC连接字符串。
https://stackoverflow.com/questions/42561536
复制相似问题