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)
我电脑的版本是 ODBC Driver 11 for SQL Server
不同电脑安装了不同的sql server版本,可能driver不同,有可能是12、13、19等等版本。
然后利用powershell下载安装pyodbc包,如图输入
pip install pyodbc
下载成功之后,输入看看有没有成功安装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
猜你喜欢
- JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。而cookie是运行在
- 前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视)
- Python自动化办公之删除重复文件思路介绍两层判断:1.先判断文件大小是否为相同,大小不同则不是重复文件,予以保留;2.文件大小相同再判断
- 支持多种编码的中文字符串截取函数! /* * @todo&
- 听到一些人说现在做产品设计很没有成就感。没有什么创造力,除了抄袭模仿(称之为竞争分析)、千篇一律(又称规范标准)还有复杂的流程、粗制滥造的表
- html_downloaderfrom urllib import requestdef download(url): &nb
- 一:操作session1:session配置Session 的配置文件存储在config/session.php中,配置参数有:(1):配置
- 1 硬件设备TTL串口摄像头(VC0706)USB转TTL烧录器2 serial安装第一次安装的是serial的包导包的时候发现下载错了,正
- 我认为多选列表具有完美的功能——只需按下Ctrl键,同时点击鼠标从列表中选择多个项目。以下是一个典型的多选列表框:选出你最喜爱的快餐:&nb
- 本文实例为大家分享了python多线程分块读取文件的具体代码,供大家参考,具体内容如下# _*_coding:utf-8_*_import
- 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中。将csv文件中的数据直接读取为 dict 类型和 DataFr
- jQuery之父John Resig写过一篇《Sub-Pixel Problems in CSS》,一个50px宽的div中有4个float
- 使用xhtml+css布局经常性地会使用到float,很多邪门的事儿都有可能是浮动在作怪,那么清除浮动就是必须要做的,而且随时性地对父级元素
- 我就废话不多说了,直接上代码吧!import Imagefrom datetime import datetimeimport osstr
- 1、Export/Import的用处 Oracle Export/Import工具用于在数据库之间传递数据。 Export从数据库中导出数据
- 一般在Django的视图函数中使用request.POST来获取请求体,request.POST是QueryDict类,通常作为dict来使
- <P><HTML><HEAD><TITLE>javascriptboy</TITLE&
- asp使用fso读取驱动器信息:<%vv=drive()response.write vv funct
- 把下面SQL里的SELECT单独执行,没有问题,但是用来CREATE VIEW 就报错了.CREATE OR REPLA
- 九宫格是一种比较古老的设计,它最基本的表现其实就像是一个三行三列的表格。其实它最初是在window的c/s结构中用得比较多,比如我们经常看到