zoukankan      html  css  js  c++  java
  • 使用Python操作MSSQL数据库.

    有时想更新或迁移部分SqlServer数据,用SQL只会整几句select,高级点的连个游标都玩不转有木有?拿起VS写个小程序不停的改又编译很烦,有木有?

    想用脚本写了有木有?

    本文介绍使用python,adodbapi操作数据库:

    adodbapi 库
    python 可以操作mssqlserver的类库有几个,支持python3.x的目前没几个靠谱的.adodbapi是使用ADO操作的.(不能跨平台?需要么?)
    所以首先要安装 

    Python for Windows extensions

     ,有了pywin32这个扩展可以做很多事,用它操作EXCEL等,甚至比VBScript还要简洁
    如:
    '''
         self.xlBook=self.xlApp.Workbooks.Open(filename)
         sht = self.xlBook.Worksheets(sheet)   
          sht.Cells(row, col).Value = value 
    '''
    详细过程:


    首先添加引用:
    import adodbapi
    adodbapi.adodbapi.verbose = False # adds details to the sample printout
    import adodbapi.ado_consts as adc
    创建连接:
        Cfg={'server':'192.168.29.86\\eclexpress','password':'xxxx','db':'pscitemp'}
        constr = r"Provider=SQLOLEDB.1; Initial Catalog=%s; Data Source=%s; user ID=%s; Password=%s; " \
             % (Cfg['db'], Cfg['server'], 'sa', Cfg['password'])
        conn=adodbapi.connect(constr)
    其中Cfg是个key-value字典,constr格式化语法是python2.x常用,在3.x可以使用下面的.
    执行sql语句:
        cur=conn.cursor()
        sql='''select * from softextBook where title='{0}' and remark3!='{1}'
        '''.format(bookName,flag)
        cur.execute(sql)
        data=cur.fetchall()
        cur.close()
    其中三个引号类似于C#字符串前的"@",python中字符串可以用一个或两个,三个括起来,format格式化语法也类似
    执行存储过程:
        #假设proName有三个参数,最后一个参数传了null
        ret=cur.callproc('procName',(parm1,parm2,None))
        conn.commit()
    关闭连接
    conn.close()
    很简单有木有?
    更多代码示例见安装目录下里的unit test代码:
    C:\Python31\Lib\site-packages\adodbapi\tests
  • 相关阅读:
    接口文档:第二章:使用Swagger接口的文档在线自动生成
    js断点调试心得
    架构漫谈(二):认识概念是理解架构的基础
    vps 虚拟机 云服务器
    云服务器和虚拟主机的区别
    SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
    查询速度优化用not EXISTS 代替 not in
    NULL 与空字符串
    MySQL中处理Null时要注意两大陷阱
    MySQL中NOT IN语句对NULL值的处理
  • 原文地址:https://www.cnblogs.com/solo/p/2193343.html
Copyright © 2011-2022 走看看