python访问MS SqlServer(通过pyodbc)

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3
 4
 5 import pyodbc
 6
 7
 8 class MSSQL:
 9     """
10     封装pyodbc
11     """
12
13     def __init__(self,host,user,pwd,db=‘master‘, charset=‘utf8‘):
14         self._host = host
15         self._user = user
16         self._pwd = pwd
17         self._db = db
18         self._charset = charset
19
20     def __get_connect(self):
21         """
22         得到连接信息
23         返回: conn.cursor()
24         """
25         if not self._db:
26             raise(NameError,"没有设置数据库信息")
27         conn_info = ‘DRIVER={SQL Server};DATABASE=%s;SERVER=%s;UID=%s;PWD=%s‘ % (self._db, self._host, self._user, self._pwd)
28         self.conn = pyodbc.connect(conn_info, charset=self._charset)
29         cur = self.conn.cursor()
30         if not cur:
31             raise(NameError,"连接数据库失败")
32         else:
33             return cur
34
35     def __exec_query(self,sql):
36         """
37         执行查询语句
38         返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
39
40         调用示例:
41                 ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
42                 resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")
43                 for (id,NickName) in resList:
44                     print str(id),NickName
45         """
46         cur = self.__get_connect()
47         cur.execute(sql)
48         resList = cur.fetchall()
49
50         #查询完毕后必须关闭连接
51         self.conn.close()
52         return resList
53
54     def exec_query_tuple(self, sql):
55         """结果集以元组返回"""
56         return self.__exec_query(sql)
57
58     def exec_query_dict(self, sql):
59         result = []
60         for row in self.__exec_query(sql):
61             result.append( dict([(desc[0], row[index]) for index, desc in enumerate(row.cursor_description)]) )
62
63         return result
64
65     def exec_nonquery(self,sql):
66         """
67         执行非查询语句
68
69         调用示例:
70             cur = self.__GetConnect()
71             cur.execute(sql)
72             self.conn.commit()
73             self.conn.close()
74         """
75         cur = self.__get_connect()
76         cur.execute(sql)
77         self.conn.commit()
78         self.conn.close()
79
80
81 if __name__ == ‘__main__‘:
82     conn = MSSQL(‘192.168.1.124‘, ‘sa‘, ‘Hinac0m‘, ‘HINAMIIS‘, ‘GBK‘)
83
84     print conn.exec_query_dict("select * from RISDevice where deviceid=1")
时间: 2024-10-05 22:04:29

python访问MS SqlServer(通过pyodbc)的相关文章

使用unidac 在linux 上无驱动直接访问MS SQLSERVER

随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this release we added such significant features as: The new UniDAC version includes a new MongoDB provider which allows you to work with a cross-platform docu

python访问sql server安装、配置、代码示例

freeTDS是能够用Linux和Unix连接MS SQLServer和Sybase数据库,TDS的意思是"表列数据流" 安装gcc组件: yum install -y gcc 否则configure的时候报错: configure: error: no acceptable C compiler found in $PATH Linux下安装freetds-dev: download source: http://mirrors.ibiblio.org/freetds/stable/

fedora python访问mysql

1 下载驱动库 http://sourceforge.net/projects/mysql-python/ 2, yum install mysql-dev* yum install python-dev* 3, python setup.py install fedora python访问mysql,布布扣,bubuko.com

使用 PHP 框架 Yii 访问 MS SQL 的尝试

今天尝试在 Wamp 环境下访问 MS SQL 数据库,有以下心得.使用 PHP 5.3 + pdo_odbc + Yii 1.1 框架,以下两个代码段可以成功. 1.直接使用 PDO 方式,可以获取数据. 1 $sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA"; 2 $cnx = new PDO("odbc:Driver={SQL Server};Server=10.5.1.47;Database=mydb;&

Debian下无root权限使用Python访问Oracle

这篇文章的起因是,在公司的服务器上没有root权限,但是需要使用 Python 访问 Oracle,而不管是使用 pip 安装组件还是安装 Oracle 的 client,都需要相应权限.本文即解决该问题. 使用 virtualenv 使用系统自带 Python 和 pip 安装组件时,默认会安装到系统目录下,需要 root 权限才能执行写操作. 不管是从资源隔离的角度,还是从绕过 root 的角度,你都需要一套顺手的 Python 虚拟环境工具:virtualenv. 去求运维哥哥帮忙安装 v

python 访问限制

在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name.score属性: >>> bart = Student('Bart Simpson', 98) >>> bart.score 98 >>> bart.score = 59 >>> bart.score 59 如果要让内部属性不被外部

Python 访问 LinkedIn (API)

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-16 @author: guaguastd @name: login.py ''' # twitter login def linkedin_login(): from linkedin import linkedin CONSUMER_KEY = '' CONSUMER_SECRET = '' USER_TOKEN = '' USER_SECRET = '

Python访问PostGIS(建表、空间索引、分区表)

#encoding: utf-8 __author__ = 'Administrator' import psycopg2 import ppygis import datetime import string import sys import logging import GeowayLogger reload(sys) #中文错误 sys.setdefaultencoding( "utf-8" ) vLog = GeowayLogger.GeowayLogger("c:

Python访问MySQL数据库

#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认127.0.0.1 'user':'root', 'password':'root', 'port':3306 ,#默认即为3306 'database':'test', 'charset':'utf8'#默认即为utf8 } if __name__=="__main__": print(c