日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python使用pyodbc,freetds连接azure数据库

發布時間:2025/3/21 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python使用pyodbc,freetds连接azure数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

簡介:

微軟azure平臺推出sqldatabase paas服務。現在使用python語言連接azure數據庫的小demo。

準備環境:

1,azure sqldatebase數據庫創建,參考http://www.windowsazure.cn/starter-guide/

第三課,創建云端的數據庫,

2,創建demo表,我是使用管理工具創建,sql語句代碼為:

IF?NOT?EXISTS?(SELECT?*?FROM?sys.objectsWHERE?object_id?=?OBJECT_ID(N'[dbo].[demo1]')AND?type?in?(N'U'))BEGINCREATE?TABLE?[dbo].[demo1](id?[int]?IDENTITY(1,1)?NOT?NULL,name?varchar(30)?not?nullCONSTRAINT?[PK_demo]?PRIMARY?KEY?CLUSTERED([id]?ASC)WITH?(IGNORE_DUP_KEY?=?OFF))END;GO

需要注意的事項為:sqldatabase必須有一列為聚合鍵,如果沒有,創建表會失敗,臨時表沒有該限制。

可以參考http://azure.microsoft.com/en-us/documentation/articles/data-management-azure-sql-database-and-sql-server-iaas/

3,1臺azure linux虛擬機,我使用的ubuntu14.04 LTS

4,1個csv文件,只包含1列中文


開始動手

1,安裝包python,pyodbc,unixodbc,freetds-bin

2,開始配置,

(1)配置freetds.conf,常見位置/etc/freetds,/usr/local/etc/

#?server?specific?section [global]#?TDS?protocol?versiontds?version?=?7.2client?charset?=?UTF-8#?Whether?to?write?a?TDSDUMP?file?for?diagnostic?purposes#?(setting?this?to?/tmp?is?insecure?on?a?multi-user?system) ; dump?file?=?/tmp/freetds.log ; debug?flags?=?0xffff#?Command?and?connection?timeouts ; timeout?=?10 ; connect?timeout?=?10#?If?you?get?out-of-memory?errors,?it?may?mean?that?your?client#?is?trying?to?allocate?a?huge?buffer?for?a?TEXT?field.??#?Try?setting?'text?size'?to?a?more?reasonable?limit?text?size?=?64512[azure]host?=?hostname.database.chinacloudapi.cnport?=?1433tds?version?=?7.2

其中,tds version選擇了7.2,添加了client charset,這是為了防止中文亂碼

(2)配置odbcinst.ini位置在/etc

[FreeTDS] Description?=?FreeTDS?Driver Driver?=?/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup?=?/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so UsageCount?=?1

(3)配置odbc.ini位置在/etc

[azure_odbc] Driver?=?FreeTDS Servername?=?azure Database?=?azureea

其中azure_odbc為odbc的dsn,Servername為freetds配置節點,Driver為odbcinst的配置節點,Database為azure數據庫名稱

3,開始調試,調試的python代碼為:

#coding:utf-8 #!/usr/bin/env?python import?pyodbc import?csv from?datetime?import?datetime conn?=?pyodbc.connect('DSN=azure_odbc;UID=username@host;PWD=xxxxx;CHARSET=utf8;') cursor?=?conn.cursor() csvfile=file('name.csv','rb') reader=csv.reader(csvfile) for?line?in?reader:print?line[0]name=line[0]cursor.execute("insert?into?demo1(name)?values?(?);",name) conn.commit() conn.close() csvfile.close()

到此,一個采集數據的小案例就完成了。

轉載于:https://my.oschina.net/longfirst/blog/368849

總結

以上是生活随笔為你收集整理的python使用pyodbc,freetds连接azure数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。