码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用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

  • 相关阅读:
    TCP详解之三次握手和四次挥手
    如何在安卓設備上更換IP地址?
    Iceberg源码学习:flink读iceberg流程二
    解决交叉编译的依赖问题
    Uniapp零基础开发学习笔记(5) -组件入门及容器组件使用
    计算机毕业设计ssm社区流浪动物救助系统2r32k系统+程序+源码+lw+远程部署
    【LeetCode题目详解】第九章 动态规划part13 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 (day52补)
    如何能保证自动驾驶数据的合规性?
    GOT Online For Unreal 功能更新发布
    王杰qtday3
  • 原文地址:https://blog.csdn.net/xxpr_ybgg/article/details/126832519
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号