Mac から Python を使って SQLServer をイジる
Macports で FreeTDS をインストール。
$ sudo port install freetds
/opt/local/etc/freetds/freetds.conf を編集。
[testserver] host = ホスト port = ポート tds version = 7.0 charset = utf8 client charset = utf8
ODBC アドミニストレータを起動して、ドライバタブからドライバを追加。以下、名前とかは適当に。
- 説明:MSSQL
- ドライバファイル:/opt/local/lib/libtdsodbc.so
次にユーザ DSN タブから DSN 追加。
- ドライバ:MSSQL
- データソース名(DSN):TestDSN
- 説明:適当に
- キーワード:
- Servername:testserver
- Database:接続データベース名
「適用」を押して完了。
ターミナルから接続確認。
$ iodbctest "DSN=TestDSN;UID=xxxx;PWD=xxxx" iODBC Demonstration program This program shows an interactive SQL processor Driver Manager: 03.52.0406.1211 Driver: 0.82 (libtdsodbc.so) SQL>
エラーが出ないのでこれでおっけ。
Python からゴニョりたいので、pyodbc をダウンロード -> インストール。
やっと Python に触れる!
#!/usr/bin/env python # -*- coding:utf-8 -*- import pyodbc def print_one(cur): cur.execute("select * from users") row = cur.fetchone() print row.user_id, row.user_name def print_all(cur): cur.execute("select * from users") rows = cur.fetchall() for row in rows: print row.user_id, row.user_name def print_count(cur): cur.execute("select count(*) from users") cnt = cur.fetchone()[0] print cnt if __name__ == '__main__': con = pyodbc.connect('DSN=TestDSN;UID=xxxx;PWD=xxxx') cur = con.cursor() try: #print_one(cur) #print_all(cur) print_count(cur) finally: con.close()
こんな感じでいいのかな。
参考サイト)
unixODBC + FreeTDS + perlで、MS SQL Serverに接続する : fujishinko 雑記帳
Google Code Archive - Long-term storage for Google Code Project Hosting.