Python連線SQLServer資料庫

2021-10-03 18:05:37 字數 1881 閱讀 9918

'''

1. 本文主要是python操作sqlserver示例,包括執行查詢及更新操作(寫入中文)。

2. 需要注意的是:讀取資料的時候需要decode('utf-8'),寫資料的時候需要encode('utf-8'),這樣就可以避免煩人的中文亂碼或報錯問題。

3. python操作sqlserver需要使用pymssql模組,使用pip install pymssql安裝即可。

此外**中使用的封裝mssql類是從網上搜尋到的,**可以封裝成乙個工具類,直接用即可。

self在定義時需要定義,但是在呼叫時會自動傳入。

self的名字並不是規定死的,但是最好還是按照約定是用self

self總是指呼叫時的類的例項。

'''# -*- coding:utf-8 -*-

import pymssql

class

mssql

:def

__init__

(self)

:# 資料庫連線引數

self.host =

'127.0.0.1'

self.user =

'sa'

self.pwd =

'123456'

self.db =

'test'

defgetconnect

(self):if

not self.db:

raise

(nameerror,

"沒有設定資料庫資訊"

) self.conn = pymssql.connect(host=self.host, user=self.user, password=self.pwd, database=self.db, charset=

"utf8"

) cursor = self.conn.cursor()if

not cursor:

raise

(nameerror,

"連線資料庫失敗"

)else

:return cursor

# 查defexecquery

(self, sql)

: cursor = self.getconnect(

) cursor.execute(sql)

reslist = cursor.fetchall(

)# 獲取查詢的所有資料

# 查詢完畢後必須關閉連線

self.conn.close(

)return reslist

# 增刪改查

defexecnonquery

(self, sql)

: cursor = self.getconnect(

) cursor.execute(sql)

self.conn.commit(

) self.conn.close(

)ms = mssql(

)# 查

reslist = ms.execquery(

"select * from dbo.flow_original_batch"

)for i in reslist:

print

(i)# 改

newsql =

"update dbo.flow_original_batch set dealerscode='%s' where batchid='149-ylqy025960-20191009'"

% u'測試'

print

(newsql)

ms.execnonquery(newsql.encode(

'utf-8'

))

localhost無法連線sqlserver

因為工作關係我的電腦安裝了2012 2017兩個版本的sqlserver,之後把2017的解除安裝了,出現了vs開啟專案不報錯,一直在轉圈的問題,之後試過本機登入sqlserver 發現登不上,要指定例項才可以。開啟配置管理器 1.開啟sqlserver網路配置,點選例項協議 2.雙擊tcp ip ...

資料庫連線池 Oracle和SQL Server

近期看到許多朋友在問資料庫連線池的問題,所以特地總結了一下.以下是oracle和sql server在配置連線池時的區別 1.oracle與sql server在配置連線池時的區別 tomcat配置檔案中 oracle的配置方法 urljdbc oracle thin 172.28.122.49 1...

Python 讀取文字檔案到sql server

import json import pymysql import sqlite3 import re import pyodbc import os 載入所需模組 sqlconn pyodbc.connect driver server 伺服器名稱 database 資料庫名稱 連線資料庫 cur...