python:pyodbc在传递用户/传递/服务器值时不会连接,但在对它们进行硬编码时会连接

问题描述 投票:-1回答:2

我正在尝试为我的数据库应用程序创建一些GUI。数据库是Oracle,我在对话框中使用pyodbc和wxPython。当我尝试执行此操作时:

try:
    cnxn = pyodbc.connect("DRIVER={Microsoft ODBC for Oracle};UID=XXX;PWD=YYY;SERVER=ZZZ;")
except:
    print 'Conn failed!'

else:
    cursor = cnxn.cursor()

有效。但是,如果我尝试将用户/通过/服务器值分配给变量,然后执行:

cnxn = pyodbc.connect("DRIVER={Microsoft ODBC for Oracle};UID=?;PWD=?;SERVER=?;",u_val, p_val, s_val)

失败。任何想法为什么?

///已解决设法赢得连接字符串。经过一番干预,我来到了可行的解决方案:

cnxn = pyodbc.connect("DRIVER={Microsoft ODBC for Oracle};UID=" + user_val + ";PWD=" + pass_val + ";SERVER=" + db_val + ";")  

仍然感谢您的帮助。

python wxpython connection-string pyodbc
2个回答
0
投票

听起来您正在对传递的无效值进行假设。

第一步是打印出值或在调试器中逐步查看它们的真正含义。确保没有多余的空格或换行符使整个作品混乱。

打赌一旦有了一些数据,它将很容易发现。


-1
投票

您可以尝试使用此代码。希望对您有所帮助:

cnxn = pyodbc.connect(DRIVER='{Microsoft ODBC for Oracle}',UID='username',PWD='password',SERVER='servername',u_val, p_val, s_val)
© www.soinside.com 2019 - 2024. All rights reserved.