Python实现SQL Server 2008的增删查改+连接过程中出现的问题以及解决方法

Python操作SQL Server 2008需要一个名为pymssql的库,如果没有这个库可以通过在cmd中输入如下命令来安装:

pip install pymssql

闲话少说,直接贴代码:

# -*- coding: utf-8 -*-
"""
Created on Sat Jan 19 11:11:17 2019

@author: DELL
"""

import pymssql

#连接服务器地址
server = "127.0.0.1"
#连接账号
user = "你的账户名称"
#连接密码
password = "你的密码"
#连接数据库的名称
database = "你的数据库名称"
#获取连接
conn = pymssql.connect(server,user,password,database)
#获取光标
cursor = conn.cursor()

#插入多行数据
def InsertData():
    #sql插入命令
    sql = "insert into test1(id,name,age) values (%s,%s,%s)"
    #需要插入的数据
    data = [('17070201',"张三",'10'),
            ('17070202',"李四",'21'),
            ('17070203',"王五",'23')]
    #执行sql语句
    cursor.executemany(sql,data)
    #提交给数据库执行
    conn.commit()

#删除数据
def DeleteData():
    #sql删除命令
    sql = "delete test1 where id=17070201"
    #执行sql语句
    cursor.execute(sql)
    #提交到数据库执行
    conn.commit()

#查询数据,并打印
def InquireData():
    #sql查询语句
    sql = "select * from test1"
    #执行sql语句
    cursor.execute(sql)
    #获得数据库中的一条信息,存放到元组中
    row = cursor.fetchone()
    #打印数据库中的信息
    while row:
        print("ID=%s,Name=%s,Age=%s"%(row[0],row[1],row[2]))
        row = cursor.fetchone()
        
#更改数据
def UpdateData():
    #sql更新语句
    sql = "update [test1] set name='赵六' where id=17070203"
    #执行sql语句
    cursor.execute(sql)
    #提交到数据库中执行
    conn.commit()
    

#InsertData()
#DeleteData()
#InquireData()
UpdateData()
conn.close()

 

本人在运行这段代码时,出现了如下问题:

上网查阅了很多资料,发现是服务器的地址(sever)格式不对,在输入服务器的地址时需要将端口号一并输入,同时要保证sql server配置管理器中的TCP/IP协议处于活跃状态,并且本机IP也要处于活跃状态,查找服务器地址和端口号的步骤为:

1、找到sql server配置管理器:

2、双击“SQL Server网络配置”中的“SQLEXPRESS的协议”:

3、双击进入“TCP/IP”:

出现如下界面,进入“IP地址”:


   4、找到如下IP地址,更重要的是找到IPALL动态端口号:

至此,将server更改为如下格式:

server = "127.0.0.1:51635"

查阅了网上许多的资料,有人说IPALL动态端口号每次开机都会改变,但本人的一直未变,一直都是51635,各位朋友可视情况而定。

要保证sql server配置管理器中的TCP/IP协议处于活跃状态,并且本机IP也要处于活跃状态,需要将如下协议和地址开启:

“已启用”一栏均改为“是”。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值