Python连接SQL Server数据库 - pymssql使用基础
----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html
下面是pymssql里参数使用说明,如下:
-
pymssqlCnx类(用于连接Mssql数据库)
pymssql.connect()来初始化连接类,它允许如下的参数。
dsn:连接字符串,主要用于与之前版本的pymssql兼容
user:用户名
password:密码
trusted:布尔值,指定是否使用windows身份认证登陆
host :主机名
database:数据库
timeout:查询超时
login_timeout:登陆超时
charset:数据库的字符集
as_dict:布尔值,指定返回值是字典还是元组
max_conn:最大连接数 |
2. Method
autocommit(status)
布尔值,指示是否自动提交事务,默认的状态是关闭的,如果打开,你必须调用commit()方法来提交事务。
close()
关闭连接
cursor()
返回游标对象,用于查询和返回数据
commit()
提交事务。
rollback()
回滚事务
pymssqlCursor类
用于从数据库查询和返回数据
rowcount
返回最后操作影响的行数。
connection
返回创建游标的连接对象
lastrowid
返回插入的最后一行
rownumber
返回当前数据集中的游标(通过索引) |
3. 游标方法
close()
关闭游标
execute(operation)
执行操作
execute(operation, params)
执行操作,可以提供参数进行相应操作
executemany(operation, params_seq)
执行操作,Params_seq为元组
fetchone()
在结果中读取下一行
fetchmany(size=None)
在结果中读取指定数目的行
fetchall()
读取所有行
nextset()
游标跳转到下一个数据集
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
import pymssql
class MSSQL:
def __init__( self ,host,user,pwd,db):
self .host = host
self .user = user
self .pwd = pwd
self .db = db
def __GetConnect( 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" )
cur = self .conn.cursor()
if not cur:
raise (NameError, "连接数据库失败" )
else :
return cur
def ExecQuery( self ,sql):
cur = self .__GetConnect()
cur.execute(sql)
resList = cur.fetchall()
self .conn.close()
return resList
def ExecNonQuery( self ,sql):
cur = self .__GetConnect()
cur.execute(sql)
self .conn.commit()
self .conn.close()
def main():
ms = MSSQL(host = "localhost" ,user = "sa" ,pwd = "123456" ,db = "PythonWeiboStatistics" )
resList = ms.ExecQuery( "SELECT id,weibocontent FROM WeiBo" )
for ( id ,weibocontent) in resList:
print str (weibocontent).decode( "utf8" )
if __name__ = = '__main__' :
main()
|
注意事项:
使用pymssql进行中文操作时候可能会出现中文乱码,我解决的方案是:
-
文件头加上 #coding=utf8
-
sql语句中有中文的时候进行encode
insertSql = "insert into WeiBo([UserId],[WeiBoContent],[PublishDate]) values(1,'测试','2012/2/1')".encode("utf8")
-
连接的时候加入charset设置信息
pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
-