python连接sqlserver_python学习--python 连接SQLServer数据库(两种方法)_weixin_39850920的博客-程序员秘密

技术标签: python连接sqlserver  

2. 集成开发环境 JetBrains PyCharm Community Edition 2018.3.4 x64

3. python 连接SQLServer数据库(两种方法)

# -*- coding:utf-8 -*-

#方法一

import pymssql

# server = "192.168.1.76" # 连接服务器地址

# user = "sa" # 连接帐号

# password = "sa" # 连接密码

#

# with pymssql.connect(server, user, password, "Contract_Dev",charset="utf8") as conn:

# with conn.cursor(as_dict=True) as cursor: # 数据存放到字典中

# cursor.execute('SELECT * FROM contract_Statelog WHERE Id=%d',2)

# for row in cursor:

# print("Id=%d, contract_StateName=%s" % (row['Id'], row['contract_StateName']))

#方法二

class MSSQL:

def __init__(self,host,user,pwd,db):

self.host = host

self.user = user

self.pwd = pwd

self.db = db

def __GetConnect(self):

if not self.db:

raise(NameError,"没有设置数据库信息")

self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")

cur = self.conn.cursor()

if not cur:

raise(NameError,"连接数据库失败")

else:

return cur

def ExecQuery(self,sql):

cur = self.__GetConnect()

cur.execute(sql)

resList = cur.fetchall()

#查询完毕后必须关闭连接

self.conn.close()

return resList

def ExecNonQuery(self,sql):

cur = self.__GetConnect()

cur.execute(sql)

self.conn.commit()

self.conn.close()

def ExecNonQueryInsert(self, sql):

cur = self.__GetConnect()

cur.execute(sql)

returnId=int(cur.lastrowid)

# print(returnId)

self.conn.commit()

self.conn.close()

return returnId

ms = MSSQL(host="192.168.1.76",user="sa",pwd="sa",db="Contract_Dev")

# reslist = ms.ExecQuery("select TOP 3 * from S_City")

# for i in reslist:

# print (i)

newsql2="insert into contract_Statelog(contract_SignedId ,contract_State ,contract_StateName ,CreateTime ,sDesc) values(1,1,'qq','2019-1-1','desc')"

print (newsql2)

Id=ms.ExecNonQueryInsert(newsql2.encode('utf-8'))

print(Id)

# newsql="update contract_Statelog set contract_StateName='%s' where id=1"%u'测试'

# print (newsql)

# ms.ExecNonQuery(newsql.encode('utf-8'))

# newsql="delete from contract_Statelog where id=1"

# print (newsql)

# ms.ExecNonQuery(newsql.encode('utf-8'))

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39850920/article/details/110074249

智能推荐

【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_hive元数据配置方式_ElegantCodingWH的博客-程序员秘密

1. 元数据配置(metastore)的3种模式2. 安装部署第一步:配置Hadoop能够接受任何代理第二步:上传hive安装包并解压第三步:配置环境变量第四步:移除hive的日志jar包第五步:将hive与hadoop联系起来第六步:解决hadoop与hive之间guava版本冲突第七步:配置并初始化元数据库方式一:内嵌模式方式二:本地模式(学习过程中用)(1) 配置MySQL(2) 配置JDBC(3) 初始化元数据库方式三:远程模式(实际开发中用)(1) 配置MySQL(

Python爬虫:selenium和Chrome无头浏览器抓取烯牛数据动态网页_犀牛数据爬虫_彭世瑜的博客-程序员秘密

烯牛数据地址: http://www.xiniudata.com/project/event/lib/invest打开页面,能正常看到内容,查看源代码发现页面并没有出现我们需要的内容,说明这是异步加载的内容。数据抓取方式1: 采用requests或scrapy,拿不到页面数据,api数据加密不好处理方式2: 采用PhantomJS,尝试多次还是拿不到数据,就算等待...

python 多线程/async 读/写文件_python asyncio 写文件_小小毛毛虫~的博客-程序员秘密

IO操作会造成程序阻塞耗时,因此采用 QUEUE + 多线程方式让IO操作不再阻塞主程序的运行,这样可以减少主程序的等待时间from concurrent.futures import ThreadPoolExecutorimport timeimport threadingdata_queue=[] # event_id: [data] | event_id: [data1, data2, ... ]def call_write_data(data): print('

linux中test的用法,test命令_Linux test 命令用法详解:shell环境中测试条件表达式工具..._大梦想程序商店的博客-程序员秘密

test命令是shell环境中测试条件表达式的实用工具。语法test(选项)选项-b:如果文件为一个块特殊文件,则为真;-c:如果文件为一个字符特殊文件,则为真;-d:如果文件为一个目录,则为真;-e:如果文件存在,则为真;-f:如果文件为一个普通文件,则为真;-g:如果设置了文件的SGID位,则为真;-G:如果文件存在且归该组所有,则为真;-k:如果设置了文件的粘着位,则为真;-O:如果文件存在...

经验库:华大HC32F460 DMA串口收发数据丢失出错_华大接收数据要么会收丢,要么会收错_牛肉爆弹的博客-程序员秘密

根本原因HC32一个DMA的多个通道无法同时传输,通道0优先级最高,已在传输的通道无法被打断,高速总线和低速总线在一个DMA可能会导致高速总线来不及传输解决措施1、高速总线DMA接收最好单独一路DMA 2、增加DMA异常错误处理 ...

logit回归模型_logistic回归_weixin_39610594的博客-程序员秘密

简单来说,逻辑回归就是来解决二分类(0或1)的问题的机器学习方法,用于评估事件发生或者不发生的可能性。比如你是否会购买这个西瓜,你是否患有某种疾病等等。逻辑回归与线性回归是什么关系呢?逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量...

随便推点

kuangbin专题十九 CF450B 矩阵快速幂_矩阵快速幂f(i)=f(i-1)*f(i-2)_Start_to_crazy的博客-程序员秘密

题意: 给你公式: F1 = x, F2 = y; Fi = F(i-1) + F(i+1);(其中i>=2) 题解: 好,我们来转换公式变成F(i+1)=F(i)-F(i-1),然后i各减去1,得F(i)=F(i-1)-F(i-2),然后就可以推出矩阵的关系了: F(i)=1*F(i-1)-1*F(i-2); F(i-1)=1*F(i-1)-0*F(i

bulk material_cuiyiyi0633的博客-程序员秘密

backflush material是反冲物料,是在生产中不需要手工进行收发货的物料,使用特定的control key就可以在对操作做最终确认时,生产订单中的相应的操作下的物料就会自动发货,在订单的最后一步操作使用特定...

Spring boot 打包时含有外部引用的jar包,打包没有打入lib中解决方法_jar包没有lib文件_qq_40561800的博客-程序员秘密

在项目开发时有时咱们须要引入一些在maven仓库中不存在的包,此时,咱们须要在maven的pom.xml中添加以下依赖方法:java<dependency> <groupId>com.pproc.dependency</groupId> <artifactId>aeswithjec</artifactId> <version>20171214</version> <scope>system</

Android studio打包aar文件--在要打aar文件的工程里,嵌套有aar文件的打包方法。生成release.aar的方法_在androidstudio中打包嵌套第三方aar的aar_锐湃的博客-程序员秘密

我们写了一个项目A,要打包成aar文件,给第三方公司使用,但是我们的项目A里,用的有另外公司的aar文件。也就是aar文件里嵌套aar文件。这种情况怎么打包呢? 把工程app下的build.gradle的apply plugin: 'com.android.application'改为apply plugin: 'com.android.library'并把app下的b...

osgEarth的Rex引擎原理分析(六十九)状态树和渲染树的关系_hankern的博客-程序员秘密

目标:(五十五)中的问题140状态树和渲染树的建立是在CullVisitor中完成的。状态树你可以看成是一个二叉树,非叶子节点StateGraph和叶子节点ReaderLeaf组成,然后一个ReaderLeaf你可以看成有一个Drawable对象,但是场景渲染的是渲染树,状态树只是为了好转换成渲染树而存在的。 渲染树你也可以看成一棵二叉树,RenderStage(渲染台)是根节点,Rende...