python连接sqlsever信息管理系统_python连接sqlserver

安装

①windows下直接pip install pymssql

②linux下麻烦点,需要以下两步

i. sudo apt-get install freetds-dev

ii. 下载pymssql源码 再使用源码安装

使用 -- 直接贴上写的脚本

#!/usr/bin/env python

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

from functools import partial

import pymssql

import torndb

import time

import datetime

class Avg(object):

database_mssql = "BEIVMS"

database_mysql = "repair"

conn_mssql = partial(pymssql.connect, host="192.168.1.112", user="sa", password="112358", port=2005, charset="UTF-8") # 然后被pymssql转换为unicode了吧(UTF-8大写)

conn_mysql = partial(torndb.Connection, host='localhost', user='root', password='123456')

def __init__(self, max_gps=60):

self.max_gps = max_gps

self.conn_mssql = self.conn_mssql(database=self.database_mssql)

self.conn_mysql = self.conn_mysql(database=self.database_mysql)

self.tbl_suffix = "DevPositions%s" % time.strftime("%Y%m%d") # DevPositions20140324

@property

def total_puid(self):

sql = "select Puid from BE_Device"

cur = self.conn_mssql.cursor()

cur.execute(sql)

return set([puids[0] for puids in cur]) or set()

@property

def partic_puid(self):

sql = "select Puid from %s group by Puid" % self.tbl_suffix

cur = self.conn_mssql.cursor()

cur.execute(sql)

return set([puids[0] for puids in cur]) or set()

@property

def noaction_puid(self):

return self.total_puid - self.partic_puid

@property

def low_max_gps_puid(self):

sql = "select Puid, count(Puid) from %s group by Puid having count(Puid)<%s" % (self.tbl_suffix, self.max_gps)

cur = self.conn_mssql.cursor()

cur.execute(sql)

return dict(cur)

def abno_puid_info(self):

low_max_gps_puid = self.low_max_gps_puid

sql_info = "select be.Puid, be.Licence, de.NodeName, be.TerminalNumber, be.TerminalType from BE_Device as be,BE_Node as de where be.nodeId = de.nodeId and be.Puid=%s"

def insert(puid, gps_count=0):

# EpID, PlateNumber, OrganName, DevID, DevType

cur = self.conn_mssql.cursor()

cur.execute(sql_info % "'%s'" % puid)

EpID, PlateNumber, OrganName, DevID, DevType = list(cur)[0]

AddTime = datetime.datetime.now().date()

GpsReal = gps_count

GpsMax = self.max_gps

EpType = "null"

sql_insert = """insert into tbl_abnormalep_3g \

(EpID, EpType, PlateNumber, OrganName, DevID, DevType, AddTime, GpsReal, GpsMax) \

values (%s, %s, %s, %s, %s, %s, %s, %s, %s)

"""

# % ("'%s'"%EpID, "'%s'"%EpType, "'%s'"%PlateNumber, "'%s'"%OrganName,"'%s'"%DevID, "'%s'"%DevType, AddTime, GpsReal, GpsMax)

self.conn_mysql.execute(sql_insert, *(EpID, EpType, PlateNumber, OrganName, DevID, DevType, AddTime, GpsReal, GpsMax))

for puid, gps_count in low_max_gps_puid.iteritems():

insert(puid, gps_count)

try:

insert(puid, gps_count)

except Exception, e:

print e

print puid, gps_count

for puid in self.noaction_puid:

try:

insert(puid)

except Exception, e:

print e

def __del__(self):

self.conn_mysql.close()

self.conn_mssql.close()

if __name__ == "__main__":

avg = Avg(60)

print len(avg.total_puid)

print len(avg.partic_puid)

print len(avg.noaction_puid)

print len(avg.low_max_gps_puid)

avg.abno_puid_info()

好的,以下是一个简单的PythonSQL Server连接实现学生信息管理系统的示例: 1. 首先,需要安装pyodbc模块,用于连接SQL Server数据库。 ``` pip install pyodbc ``` 2. 导入pyodbc模块,并且连接SQL Server数据库。 ``` import pyodbc # 定义连接参数 server = 'localhost' database = 'StudentDB' username = 'sa' password = 'password' # 连接数据库 cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) ``` 3. 创建一个学生信息表。 ``` # 创建学生信息表 cursor = cnxn.cursor() cursor.execute(''' CREATE TABLE Students (ID INT IDENTITY(1,1) PRIMARY KEY, Name VARCHAR(50), Age INT, Gender VARCHAR(10), Address VARCHAR(100)); ''') ``` 4. 定义一些函数用于实现学生信息管理系统的功能。 ``` # 添加学生信息 def add_student(name, age, gender, address): cursor.execute('INSERT INTO Students (Name, Age, Gender, Address) VALUES (?, ?, ?, ?)', (name, age, gender, address)) cnxn.commit() # 查找学生信息 def search_student(name): cursor.execute('SELECT * FROM Students WHERE Name = ?', name) row = cursor.fetchone() if row: print(row) else: print('No student found with that name.') # 更新学生信息 def update_student(name, age, gender, address): cursor.execute('UPDATE Students SET Age = ?, Gender = ?, Address = ? WHERE Name = ?', (age, gender, address, name)) cnxn.commit() # 删除学生信息 def delete_student(name): cursor.execute('DELETE FROM Students WHERE Name = ?', name) cnxn.commit() ``` 5. 使用函数实现学生信息管理系统的功能。 ``` # 添加学生信息 add_student('Tom', 20, 'Male', '123 Main St.') add_student('Jane', 19, 'Female', '456 Elm St.') add_student('John', 21, 'Male', '789 Oak St.') # 查找学生信息 search_student('Tom') # 更新学生信息 update_student('Jane', 22, 'Female', '456 Elm St.') search_student('Jane') # 删除学生信息 delete_student('John') search_student('John') ``` 完整代码如下: ``` import pyodbc # 连接SQL Server数据库 server = 'localhost' database = 'StudentDB' username = 'sa' password = 'password' cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) # 创建学生信息表 cursor = cnxn.cursor() cursor.execute(''' CREATE TABLE Students (ID INT IDENTITY(1,1) PRIMARY KEY, Name VARCHAR(50), Age INT, Gender VARCHAR(10), Address VARCHAR(100)); ''') # 添加学生信息 def add_student(name, age, gender, address): cursor.execute('INSERT INTO Students (Name, Age, Gender, Address) VALUES (?, ?, ?, ?)', (name, age, gender, address)) cnxn.commit() # 查找学生信息 def search_student(name): cursor.execute('SELECT * FROM Students WHERE Name = ?', name) row = cursor.fetchone() if row: print(row) else: print('No student found with that name.') # 更新学生信息 def update_student(name, age, gender, address): cursor.execute('UPDATE Students SET Age = ?, Gender = ?, Address = ? WHERE Name = ?', (age, gender, address, name)) cnxn.commit() # 删除学生信息 def delete_student(name): cursor.execute('DELETE FROM Students WHERE Name = ?', name) cnxn.commit() # 添加学生信息 add_student('Tom', 20, 'Male', '123 Main St.') add_student('Jane', 19, 'Female', '456 Elm St.') add_student('John', 21, 'Male', '789 Oak St.') # 查找学生信息 search_student('Tom') # 更新学生信息 update_student('Jane', 22, 'Female', '456 Elm St.') search_student('Jane') # 删除学生信息 delete_student('John') search_student('John') ``` 希望能够帮助到你!如果有任何问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值