我正在與Python(和Twisted)一起對抗Sybase SQL Anywhere 12數週,現在我甚至可以開始工作。pyodbc如何確定編碼?
剩下的只有一個煩惱:如果我使用自定義Python 2.7.1(這是部署平臺)在CentOS 5上運行腳本,我會得到我的結果爲UTF-8。
如果我在Ubuntu盒子(Natty Narwhal)上運行它,我可以在latin1中獲得它們。不用說,我寧願用Unicode獲取所有數據,但這不是問題的關鍵。 :)
兩者都是64位盒子,都有自定義的Python 2.7.1。與UCS4和定製的unixODBC 2.3.0。
我在這裏不知所措。我找不到任何文件。是什麼讓pyodbc或unixODBC在兩個盒子上表現不同?
鐵的事實:
- 的Python 2.7.1
- DB:SQL Anywhere的12
- 的unixODBC:2.3.0(2.2.14做相同的行爲),自與相同的標誌 編譯
- ODBC驅動程序:Sybase提供的原件。
- CentOS 5給了我UTF-8,Ubuntu Natty Narwhal給了我latin1。
我ODBC.INI看起來是這樣的:
[sybase]
Uid = user
Pwd = password
Driver = /opt/sqlanywhere/lib64/libdbodbc12_r.so
Threading = True
ServerName = dbname
CommLinks = tcpip(host=the-host;DoBroadcast=None)
我通過使用DNS = 'SYBASE' 只需連接。
TIA!
謝謝!在那裏工作時,你能讓sqlanydb線程安全嗎? ;)( - > http://stackoverflow.com/questions/5790435/python-twisted-sqlanydb-abort/現在,我甚至崩潰與pyodbc,扭曲似乎觸發一些邪惡的司機) – hynek 2011-05-04 17:41:46
那麼,我可以,但是午餐後我會做些什麼? – 2011-05-04 23:11:28
那麼,你可以解決暫停問題,並休息一天休息? ;) – hynek 2011-05-05 07:25:22