首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pypyodbc使用显式字符串连接,但不使用变量。

pypyodbc使用显式字符串连接,但不使用变量。
EN

Stack Overflow用户
提问于 2017-03-02 17:02:36
回答 1查看 792关注 0票数 0

我正在从用户读取Server数据库的连接字符串,这里用随机字符串表示。当我将随机字符串打印到控制台时,它看起来是完美的,我已经检查过它十几次了。但是,连接将失败。

pypyodbc.Error:(IM002 002,IM002

如果我显式地将完全相同的字符串传递给游标,则连接可以正常工作。我是否需要对string变量做任何特定的操作才能使用它?

代码语言:javascript
运行
复制
    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=’密码‘)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-03 01:15:46

首先要注意的是,第二个(注释掉的)示例不是与“显式连接字符串”连接,而是使用一系列关键字参数("kwargs")来指定driverserver等。注意关键字参数表单之间的细微差别..。

代码语言:javascript
运行
复制
self.conn = pypyodbc.connect(driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password')

..。以及连接字符串形式:

代码语言:javascript
运行
复制
self.conn = pypyodbc.connect('driver={SQL Server};server=(local);database=Audit;uid=sa;pwd=password')

现在如果您的randomstring变量确实包含

代码语言:javascript
运行
复制
pypyodbc.connect(driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password')

那么它肯定不是一个有效的ODBC连接字符串。即使它只是包含

代码语言:javascript
运行
复制
driver='{SQL Server}', server='(local)', database='Audit', uid='sa', pwd='password'

这仍然不是一个有效的连接字符串,因为项目由逗号(不是分号)分隔,并且值周围有引号。在将randomstring值传递给.connect方法之前,您需要将它的内容转换为适当的ODBC连接字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42561536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档