2012-03-08 2 views
-1

내 데이터베이스 응용 프로그램 용 GUI를 만들려고합니다. 데이터베이스는 오라클이고 pyodbc와 wxPython을 대화 상자에 사용하고 있습니다. 나는이 작업을 수행 할 때 :python : 사용자/패스/서버 값을 전달할 때 pyodbc가 연결되지 않지만 하드 코드 할 때 pyodbc가 연결되지 않습니다.

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

else: 
    cursor = cnxn.cursor() 

그것은 작동합니다. 그러나 변수에 사용자/전달/서버 값을 할당하려고하면 다음을 수행하십시오.

오류가 발생합니다.
이유가 무엇입니까?

/// SOLVED
관리되는 연결 문자열.

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

고맙습니다 도움을 어쨌든 : 일부의 간섭 후 나는 작동 솔루션에왔다.

+2

제목에'[solved]'를 넣지 말고 해결책을 질문에 쓰지 마십시오. 아직 열거되지 않은 해결책에 도달 한 경우 [자신의 질문에 대답하고 답변 할 수 있습니다] (http : //blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) 자신의 질문에 대한 답변을 수락 할 수도 있습니다. 이 다른 사람은이 문제가 해결되었음을 알 것입니다. –

+0

왜이 커뮤니티의 규칙을 따르기를 거부하십니까? –

+0

답변에 넣으세요. –

답변

0

지나가는 값이 유효하지 않다는 가정을하는 것처럼 들립니다.

첫 번째 단계는 값을 출력하거나 디버거에서 단계별로 실행하여 실제로 무엇인지 확인하는 것입니다. 작업에 큰 영향을 미치지 않는 공백 문자 나 개행 문자가 없는지 확인하십시오.

일단 데이터가 있으면 얼룩이 생길 수 있습니다.

+0

strip()을 수행하려고 시도했지만 여전히 결과가 없습니다. 나를 미치게 만들었다. 의미가 있다면 wx.TyyCtrl 위젯에서 'str (self.db_user.GetValue()). strip()'을 사용하여 wxPython 대화 상자에서 값을 가져옵니다. – ch1zra

+0

디버거에서 값을 살펴 보았습니까? IntelliJ의 PyCharm을 사용하면이 문제를 쉽게 해결할 수 있습니다. – duffymo

+0

나는 직장에있다. 그리고 여기에서는 내가 단지 IDLE (나는 아주 좋아한다)를 가지고있다. 및 ofc, 집에서 DB @ work에 연결할 수 없습니다. – ch1zra