pymssql数据库操作MSSQL2005实例分析

时间:2022-08-29 12:40:20

本文实例讲述了pymssql数据库操作MSSQL2005的方法。分享给大家供大家参考。具体如下:

使用的MSSQL2005,通过pymssql来连接的。把可能用到的数据库操作方式都总结如下,如果要用的时候就备查啦。

  1. #!/usr/bin/env python 
  2. #coding=utf-8 
  3. from __future__ import with_statement 
  4. from contextlib import closing 
  5. import inspect 
  6. import pymssql 
  7. import uuid 
  8. import datetime 
  9. #查询操作 
  10. with closing(pymssql.connect(host='localhost',user='sa',password='pppp',database='blogs')) as conn : 
  11.   cur = conn.cursor() 
  12.   #SELECT 长连接查询操作(逐条方式获取数据) 
  13.   sql = "select * from pcontent" 
  14.   cur.execute(sql) 
  15.   for i in range(cur.rowcount): 
  16.     print cur.fetchone() 
  17.   #SELECT 短链接查询操作(一次查询将所有数据取出) 
  18.   sql = "select * from pcontent" 
  19.   cur.execute(sql) 
  20.   print cur.fetchall() 
  21.   #INSERT 
  22.   sql = "INSERT INTO pcontent(title)VAlUES(%s)" 
  23.   uuidstr = str(uuid.uuid1()) 
  24.   cur.execute(sql,(uuidstr,)) 
  25.   conn.commit() 
  26.   print cur._result 
  27.   #INSERT 获取IDENTITY(在插入一个值,希望获得主键的时候经常用到,很不优雅的方式) 
  28.   sql = "INSERT INTO pcontent(title)VAlUES(%s);SELECT @@IDENTITY" 
  29.   uuidstr = str(uuid.uuid1()) 
  30.   cur.execute(sql,(uuidstr,)) 
  31.   print "arraysite:",cur.arraysize 
  32.   print cur._result[1][2][0][0]#不知道具体的做法,目前暂时这样使用 
  33.   conn.commit() 
  34.   #Update 
  35.   vl = '中国' 
  36.   sql = 'update pcontent set title = %s where id=1' 
  37.   cur.execute(sql,(vl,)) 
  38.   conn.commit() 
  39.   #参数化查询这个是为了避免SQL攻击的 
  40.   sql = "select * from pcontent where id=%d" 
  41.   cur.execute(sql,(1,)) 
  42.   print cur.fetchall() 
  43.   # 调用存储过程SP_GetALLContent 无参数 
  44.   sql = "Exec SP_GetALLContent" 
  45.   cur.execute(sql) 
  46.   print cur.fetchall() 
  47.   # 调用存储过程SP_GetContentByID 有参数的 
  48.   sql = "Exec SP_GetContentByID %d" 
  49.   cur.execute(sql,(3,)) 
  50.   print cur.fetchall() 
  51.   #调用存储过程SP_AddContent 有output参数的(很不优雅的方式) 
  52.   sql = "DECLARE @ID INT;EXEC SP_AddContent 'ddddd',@ID OUTPUT;SELECT @ID" 
  53.   cur.execute(sql) 
  54.   print cur._result 
 

希望本文所述对大家的Python程序设计有所帮助。