python使用pyodbc连接sqlserver

作者:罗汉松驻扎的工作基地 时间:2021-12-24 06:06:17 

用python操作ms sqlserver,有好几种方法:

(1)利用pymssql (2)利用pyodbc

这里讲import pyodbc来操作sql server database。

pyodbc是Python包,使用ODBC驱动器来连接SQL Server数据库,其中pyodbc的基本类型是Connection,Cursor、Row

其中,Connection表示客户端和数据库的连接,并用于提交事务;

Cursor表示向数据库发送的查询请求;

Row表示获取的结果集。

首先查看自己电脑有没有安装sql server对应的odbc,在控制面板中可以查:

控制面板-->管理工具-->数据源(ODBC)

python使用pyodbc连接sqlserver

我电脑的版本是  ODBC Driver 11 for SQL Server 

不同电脑安装了不同的sql server版本,可能driver不同,有可能是12、13、19等等版本。

然后利用powershell下载安装pyodbc包,如图输入

pip install pyodbc

python使用pyodbc连接sqlserver

下载成功之后,输入看看有没有成功安装package

pip list

成功安装package之后,就可以开始编辑python代码了。

代码如下(两个文件DBHelp_SqlServer.py  和 testConn.py):

文件1(DBHelp_SqlServer.py)

import pyodbc

class MSSQL:
   def __init__(self, IP, UserID, Pwd, db):
       self.host=IP;
       self.user=UserID;
       self.password=Pwd;
       self.dbname=db;

def __getConnect(self):
       if not self.dbname:
           raise(NameError,"db name undefine error")
       else:
           connSTR="Driver={ODBC Driver 11 for SQL Server};SERVER=%s,1433;DATABASE=%s;UID=%s;PWD=%s" % (self.host, self.dbname, self.user, self.password)
           ##example: Driver={ODBC Driver 11 for SQL Server};SERVER=127.0.0.1,1433;DATABASE=MyTestDB;UID=sa;PWD=Abc123
           self.conn = pyodbc.connect(connSTR);
           cu= self.conn.cursor();
       if not cu:
           raise(NameError,"db connect error");
       else:
           return cu;

def ExecuteTableQuery(self,selectSql):
       cuu = self.__getConnect();
       selectRows = cuu.execute(selectSql);
       resList=selectRows.fetchall();
       self.conn.close();
       return resList;

def ExecuteNonQuery(self,sql):
       cuu = self.__getConnect();
       cuu.execute(sql);
       self.conn.commit();
       self.conn.close();

def PrintODBCDrivers(self):
       print(pyodbc.drivers() );

文件2(testConn.py)

import DBHelp_SqlServer

db=DBHelp_SqlServer.MSSQL(IP="127.0.0.1", UserID="sa", Pwd="Abc123", db="MyTestDB");

sqlinsert="insert into TeacherTable(TName,TClass) values('吕老师','三年级')"
db.ExecuteNonQuery(sql=sqlinsert);

sql1="select * from TeacherTable";
datatable = db.ExecuteTableQuery(selectSql=sql1);
print(datatable);

运行之后就能看到insert sql和select sql的结果了。

备注:如果使用pymssql,可能会出现中文乱码的问题,我搞不懂怎么解决。而使用pyodbc就没出现乱码。哪个简单用哪个。

来源:https://blog.csdn.net/MFCdestoryer/article/details/128903053

标签:python,连接,sqlserver
0
投稿

猜你喜欢

  • python 读取txt中每行数据,并且保存到excel中的实例

    2022-06-14 02:28:09
  • javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)

    2023-08-18 20:01:36
  • 能否用显示/隐藏层来控制FLASH播放与停止

    2008-10-27 14:08:00
  • JavaScript奇怪的比较——隐式类型转换

    2009-02-15 13:06:00
  • mssql存储过程表名和字段名为变量的实现方法

    2011-12-01 07:59:13
  • PHP中文件读、写、删的操作(PHP中对文件和目录操作)

    2023-11-22 06:03:23
  • php strstr查找字符串中是否包含某些字符的查找函数

    2023-11-17 01:42:23
  • jquery的$(document).ready()和onload的加载顺序

    2023-08-23 18:57:40
  • Asp中如何快速分页的技巧

    2008-05-17 12:02:00
  • .net新兴日志框架Serilog简介

    2023-06-28 16:20:05
  • 利用Python通过获取剪切板数据实现百度划词搜索功能

    2023-07-14 06:59:06
  • 推荐19个很有用的 JavaScript 库

    2011-05-14 16:33:00
  • MySQL的性能调优工具:比mysqlreport更方便的tuning-primer.sh

    2008-12-08 08:37:00
  • 实现UTF8转换GB2312国标码的asp代码

    2011-02-28 10:53:00
  • sql server 获取系统时间的方法

    2023-07-17 07:05:36
  • mssql server 数据库附加不上解决办法分享

    2011-09-30 11:55:20
  • SQL Server取得网站路径的几种方法及比较

    2008-12-09 14:15:00
  • Web前端应用十种常用技术

    2010-09-01 20:46:00
  • PHP设计模式 注册表模式(多个类的注册)

    2023-11-20 06:45:13
  • 完全讲解 使用MSCS建立SQL Server集群

    2009-01-19 14:10:00
  • asp之家 网络编程 m.aspxhome.com