python:pyodbc在我传递用户/传递/服务器值时不会连接,但在我硬编码时连接

时间:2012-03-08 10:34:14

标签: python wxpython connection-string pyodbc

我正在尝试为我的数据库应用程序创建一些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 + ";")  
无论如何,还要求帮助。

2 个答案:

答案 0 :(得分:0)

听起来你正在假设你传递的值是无效的。

第一步是在调试器中打印或逐步打印值,看看它们到底是什么。确保没有任何无关的空白或换行字符。

一旦你掌握了一些数据,它就会很容易被发现。

答案 1 :(得分:-1)

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

cnxn = pyodbc.connect(DRIVER='{Microsoft ODBC for Oracle}',UID='username',PWD='password',SERVER='servername',u_val, p_val, s_val)