python: pyodbc не подключается, когда я передаю значения user / pass / server, но подключается, когда я жестко их кодирую - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь создать графический интерфейс для работы с моей базой данных. База данных - 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()

Это работает. Но если я попытаюсь присвоить значения переменной user / pass / server переменной, а затем выполните:

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 + ";")  

Спасибо за помощь в любом случае.

1 Ответ

0 голосов
/ 08 марта 2012

Похоже, что вы делаете предположения о значениях, которые вы передаете, которые являются недопустимыми.

Первый шаг - это распечатать значения или перейти в отладчик и посмотреть, что они на самом деле,Убедитесь, что нет посторонних пробелов или символов новой строки, смешивающих работы.

Держу пари, что будет легко обнаружить, как только у вас появятся данные.

...