Python 读取Sql Server数据库

来源:互联网 发布:首单免单的外卖软件 编辑:程序博客网 时间:2024/05/16 13:00

pyodbc模块 

pyodbc是ODBC的一个python封装,它允许任何平台上的python具有使用ODBC API的能力。要想与SqlServer数据库进行交互,需要先导入pyodbc模块。pyodbc的最新版是pyodbc3.0.7,下载地址为:https://pypi.python.org/pypi/pyodbc/

读取mysql的实例

'''Created on Sep 11, 2014@author: liu.chunming'''import pyodbcdef get_sms_operator(sectorNumber='0'):    cnxn=pyodbc.connect("DRIVER={SQL SERVER};SERVER=10.86.9.171;DATABASE=MCASDB;UID=mcas;PWD=Bdclab123")    cur=cnxn.cursor()    select="Select smsOperatorTag from [MCASDB].[dbo].[CaSMSOperator] where sectorNumber="+str(sectorNumber)    cur.execute(select)    #rows=cur.fetchall()    row=cur.fetchone()    if row:        return row    else:        raise Exception,"There seems no operator on sector:"+str(sectorNumber)    cnxn.close()for row in get_sms_operator(0):    print row    

实例解析

1.首先,建立与SqlServer连接,生成connection对象cnxn。

2.获取当前连接的游标cur。

3.利用游标执行sql查询。

4.利用fetchall返回查询结果的所有记录,即返回多个记录(rows),如果没有结果 则返回 () ;利用fetchone返回查询结果的第一行,如果没有结果 则返回 None。

5.关闭连接。

相关方法

1. connection 对象

方法close():关闭数据库
commit():提交当前事务
rollback():取消当前事务
cursor():获取当前连接的游标
errorhandler()作为已给游标的句柄

2.cursor游标对象和方法

方法arrysize(): 使用fetchmany()方法时一次取出的记录数,默认为1
connection():创建此游标的连接
discription():返回游标的活动状态,包括(7要素)(name,type_code,display_size,internal_size,precision,scale,null_ok)其中name,type_code是必须的
lastrowid():返回最后更新行的id,如果数据库不支持,返回none.
rowcount():最后一次execute()返回或者影响的行数
callproc():调用一个存储过程
close():关闭游标
execute():执行sql语句或者数据库命令
executemany():一次执行多条sql语句
fetchone():匹配结果的下一行
fetchall():匹配所有剩余结果
fetchmany(size-cursor,arraysize):匹配结果的下几行
__iter__():创建迭代对象(可选,参考next())
messages():游标执行好数据库返回的信息列表(元组集合)
next():使用迭代对象得到结果的下一行
nextset():移动到下一个结果集
rownumber():当前结果集中游标的索引(从0行开始)
setinput-size(sizes):设置输入的最大值
setoutput-size(sizes[,col]):设置列输出的缓冲值

参考资料

http://tech.it168.com/a2009/1014/759/000000759444_2.shtml

http://www.itpub.net/forum.php?mod=viewthread&tid=813849

0 0