2013-04-15 10 views
8

Ich muss Unicode an SQL Server mit Python 2.7 senden. I failed with pymssql. Ich versuche jetzt pypyodbc arbeiten (im Gegensatz zu pyodbc), wie es working unicode examples gibt. Das Problem ist, dass die Verbindungszeichenfolge im Beispiel nicht wie etwas aussieht, das ich erkenne. Ich sah this, und nach einem kleinen Versuch und Irrtum, diese Zeichenfolge aufgebaut:Verbinden mit SQL Server mit pypyodbc

conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='MyPassword';DATABASE='db'") 

Got wieder ein DatabaseError konzentrierte sich auf die Verbindungszeichenfolge:

C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs) 
---> 2 conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='password';DATABASE='db'") 

C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs) 
---> 2273   self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly) 

C:\Anaconda\lib\site-packages\pypyodbc.pyc in connect(self, connectString, autocommit, ansi, timeout, unicode_results, readonly) 
---> 2321   check_success(self, ret) 

C:\Anaconda\lib\site-packages\pypyodbc.pyc in ctrl_err(ht, h, val_ret, ansi) 
---> 919     raise DatabaseError(state,err_text) 

DatabaseError: (u'08001', u'[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.') 

Ich kenne meine Anmeldeinformationen richtig sind, weil ich habe sie verwendet, um erfolgreich mit Pymssql zu verbinden. Was vermisse ich?

Antwort

15

Entfernen Sie die einzelnen Zitate aus den server, uid, pwd und database Attribute der Verbindungszeichenfolge:

conn = pypyodbc.connect("DRIVER={SQL Server};SERVER=MyServer;UID=me;PWD=password;DATABASE=db") 

Da pypyodbc erwähnt Kompatibilität mit pyodbc, eine Minute dauern die pyodbc connection string docs und pyodbc.connect() Beispiele zu schauen. Ich benutze diese Syntax in Pyodbc:

cnxn = connect(driver='{SQL Server}', server='localhost', database='test', uid='me', pwd='me2') 
2

die Portnummer Weglassen (1433) in der Verbindungszeichenfolge von einem Linux-Client bei mir Fehler warf (aber nicht Windows 7). Es ist wahrscheinlich ein Konfigurationsproblem, aber ich hatte keine Zeit, es zu verfolgen.

Putting dies da draußen, falls es jemand anderen hilft.

Verwandte Themen