python 通過Sybase ASE ODBC Driver訪問sybase數據庫,無需配置DSN【自己整理的】


Python語言對於開發工程師或者測試工程師來說,應該是最高效的開發語言之一。
但python訪問sybase數據庫的資料相對少見。而且sybase字符集為GB1803時,python訪問sybase庫中的中文,結果都不理想。

要么使用收費第3方庫,就是要自己編譯開源庫,總之過程很痛苦。

下面將本人整理的資料分享出來,希望幫到您。

  1. 選擇合適的Sybase ASE ODBC Driver。參見https://download.csdn.net/download/iihero/3914619。為了方便大家下載,這里通過百度雲分享。

    鏈接:https://pan.baidu.com/s/1wm-swb4w70TK_VIa08qKHg 
    提取碼:seiq

  2. 安裝過程,參見下圖的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

     

  3. 由於該驅動本質是32bit的,所以Python和pyodbc也要用32bit的。否則會出現很多奇怪的問題。
  4. 調用代碼如下:
     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() 

       上面資料整理是幾年前的事情了,最近有個朋友遇到困難,剛好幫到他,很開心。想到自己一點小小經驗,不能敝帚自珍,所以分享出來。錯誤或者不當之處,請指正。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM