Python語言對於開發工程師或者測試工程師來說,應該是最高效的開發語言之一。
但python訪問sybase數據庫的資料相對少見。而且sybase字符集為GB1803時,python訪問sybase庫中的中文,結果都不理想。
要么使用收費第3方庫,就是要自己編譯開源庫,總之過程很痛苦。
下面將本人整理的資料分享出來,希望幫到您。
- 選擇合適的Sybase ASE ODBC Driver。參見https://download.csdn.net/download/iihero/3914619。為了方便大家下載,這里通過百度雲分享。
鏈接:https://pan.baidu.com/s/1wm-swb4w70TK_VIa08qKHg
提取碼:seiq - 安裝過程,參見下圖的2個文檔,也可以參見:
http://blog.csdn.net/iihero/article/details/17173011,
http://www.cnblogs.com/ycusking/archive/2012/02/13/sql_link_sybase.html。
請參照readme.txt,如64位的Window,運行odbc_x64.bat后,在c:\windows\syswow64\odbcad32,就可以在驅動列表里看到Sybase ASE ODBC Driver這個驅動了。如果沒有看到,需要手工執行:
regedit /s .\ODBC_64.reg
regedit /s .\Sybase_64.reg - 由於該驅動本質是32bit的,所以Python和pyodbc也要用32bit的。否則會出現很多奇怪的問題。
- 調用代碼如下:
1 import pyodbc 2 4 # 參考http://bbs.csdn.net/topics/380063945,從中獲得靈感,無需配置DSN。 5 conn = pyodbc.connect('DRIVER={Sybase ASE ODBC Driver};NetworkAddress=10.10.132.110,5000;DATABASE=jkp_tjzlk;UID=sa;PWD=123456') 6 cursor = conn.cursor() 7 cursor.execute("SELECT famc FROM sn_wffa_gl ") 8 for row in cursor: 9 for col in row: 10 print(col) 11 cursor.close() 12 conn.close()
上面資料整理是幾年前的事情了,最近有個朋友遇到困難,剛好幫到他,很開心。想到自己一點小小經驗,不能敝帚自珍,所以分享出來。錯誤或者不當之處,請指正。