pymssql数据库操作MSSQL2005实例分析

yipeiwu_com6年前Python基础

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

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

#!/usr/bin/env python
#coding=utf-8
from __future__ import with_statement
from contextlib import closing
import inspect
import pymssql
import uuid
import datetime
#查询操作
with closing(pymssql.connect(host='localhost',user='sa',password='pppp',database='blogs')) as conn :
  cur = conn.cursor()
  #SELECT 长连接查询操作(逐条方式获取数据)
  sql = "select * from pcontent"
  cur.execute(sql)
  for i in range(cur.rowcount):
    print cur.fetchone()
  #SELECT 短链接查询操作(一次查询将所有数据取出)
  sql = "select * from pcontent"
  cur.execute(sql)
  print cur.fetchall()
  #INSERT 
  sql = "INSERT INTO pcontent(title)VAlUES(%s)"
  uuidstr = str(uuid.uuid1())
  cur.execute(sql,(uuidstr,))
  conn.commit()
  print cur._result
  #INSERT 获取IDENTITY(在插入一个值,希望获得主键的时候经常用到,很不优雅的方式)
  sql = "INSERT INTO pcontent(title)VAlUES(%s);SELECT @@IDENTITY"
  uuidstr = str(uuid.uuid1())
  cur.execute(sql,(uuidstr,))
  print "arraysite:",cur.arraysize
  print cur._result[1][2][0][0]#不知道具体的做法,目前暂时这样使用
  conn.commit()
  #Update
  vl = '中国'
  sql = 'update pcontent set title = %s where id=1'
  cur.execute(sql,(vl,))
  conn.commit()
  #参数化查询这个是为了避免SQL攻击的
  sql = "select * from pcontent where id=%d"
  cur.execute(sql,(1,))
  print cur.fetchall()
  # 调用存储过程SP_GetALLContent 无参数
  sql = "Exec SP_GetALLContent"
  cur.execute(sql)
  print cur.fetchall()
  # 调用存储过程SP_GetContentByID 有参数的
  sql = "Exec SP_GetContentByID %d"
  cur.execute(sql,(3,))
  print cur.fetchall()
  #调用存储过程SP_AddContent 有output参数的(很不优雅的方式)
  sql = "DECLARE @ID INT;EXEC SP_AddContent 'ddddd',@ID OUTPUT;SELECT @ID"
  cur.execute(sql)
  print cur._result

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

相关文章

在django view中给form传入参数的例子

在django的form表单会出现,在form的验证或者保存时需要非form中的field的信息参数。例如在对操作进行记录,我们需要根据将记录的操作人设置为当前的用户,所以在view中我...

在python中实现同行输入/接收多个数据的示例

在python中实现同行输入/接收多个数据的示例

在使用python去AC题时总会遇到这样的问题,题目要求同行输入一组数据,但是你使用input时却不能做到,导致不断的CE,这个时候怎么样来解决的这个问题呢? 很简单,只需要使用inpu...

python3.6+opencv3.4实现鼠标交互查看图片像素

python3.6+opencv3.4实现鼠标交互查看图片像素

在利用opencv进行图片处理时,经常需要查看图片关心区域或位置的像素数值,苦于没有应手的小软件,我用python3.6+opencv3.4简单编制一个小工具,供大家使用。 流程 1...

解决python写入带有中文的字符到文件错误的问题

在python写脚本过程中需要将带有中文的字符串内容写入文件,出现了报错的现象。 ---------------------------- UnicodeEncodeError: 'as...

Python多线程模块Threading用法示例小结

本文实例讲述了Python多线程模块Threading用法。分享给大家供大家参考,具体如下: 步入正题前,先准备下基本知识,线程与进程的概念。    相信作为一个测试人员,如果从理论概念...