使用Python2.4在Linux下訪問SQL Server(安裝篇)

來源:互聯網
上載者:User

以前用Python訪問MSSQL用一個叫pymssql的模組,只在windows下用過,挺好用的。具體說明見這裡
http://pymssql.sourceforge.net/。

現在需要在Linux下用Python訪問MSSQL,安裝了FreeTDS(http://www.freetds.org/)。由於這幾天pymssql的原始碼無法下載,Debian上也沒有這個包下載,只好用FreeTDS文檔中提到的Python MSSQL module(http://object-craft.com.au/projects/mssql/examples.html),下載下來按照文檔執行 python setup.py install,
編譯錯誤,出現下邊的提示:
running install
running build
running build_py
running build_ext
building 'mssqldb' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_FREETDS -DHAVE_DBALTBIND -DHAVE_DBCLROPT -DHAVE_DBCURCMD -DHAVE_DBCURROW -DHAVE_DBISOPT -DHAVE_DBNUMCOMPUTE -DHAVE_DBRETTYPE -I/usr/include -I/home/hjue/Python-2.4.2/Include -I/home/hjue/Python-2.4.2 -c databuf.c -o build/temp.linux-i686-2.4/databuf.o
In file included from databuf.c:9:
mssqldb.h:59: error: syntax error at '##' token
mssqldb.h:59: error: syntax error at '##' token
mssqldb.h:59: error: syntax error at '##' token
mssqldb.h:68: error: `DBMAXCHAR' undeclared here (not in a function)
mssqldb.h:71: error: syntax error at '##' token
mssqldb.h:71: error: syntax error at '##' token
mssqldb.h:71: error: syntax error at '##' token
error: command 'gcc' failed with exit status 1

在Google上查了一下,主要是因為關於MSSQL的一些變數沒有定義。
在mssqldb.h 中加入下邊代碼,重新運行python setup.py install 就OK了

# define DBMAXCHAR 256
#ifdef HAVE_FREETDS  
typedef unsigned char DBBIT;
#define PRNUMERIC MAXPRECISION
#define DB_MAX_PREC MAXPRECISION
#define DB_MAX_SCALE MAXPRECISION
typedef struct dbvarychar
{                 
        DBSMALLINT  len;                 
        DBCHAR      str[DBMAXCHAR];
} DBVARYCHAR;        
#endif

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.