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

'''
python coded by

written in 2016/8/31

Used for get win os log for each windows server
'''

'''
pymssql 帮助文档
http://pymssql.org/en/stable/pymssql_examples.html
'''

import pymssql
import MySQLdb
import time

#全局变量
host = "192.168.33.190"
user = "sa"
password = "1111"
dbname = "testdb"
port = 1433

def fetch_row():
try:
#conn = pymssql.connect(host,port,user,password,dbname,charset="UTF-8",timeout=3)
conn = pymssql.connect(server=host,port=port,database=dbname,user=user,password=password,charset="UTF-8",timeout=3)
cursor = conn.cursor()
sql="select schema_id,name from t1"
cursor.execute(sql)
row = cursor.fetchone() #相当于 cursor.next方法
while row:
print("ID=%d, Name=%s" % (row[0], row[1])) #格式化输出

#time.sleep(1) #每次输出等待1秒
row = cursor.fetchone() #输出下一行 cursor.next方法
conn.close()
return 1

except Exception,e:
return e

def change_row():
try:
conn = pymssql.connect(server=host,port=port,database=dbname,user=user,password=password,charset="UTF-8",timeout=3)
cursor = conn.cursor()
#sql="insert into t1 select * from t1"
sql="update t1 set object_id=object_id+1067705889 where name='dm_resource_governor_resource_pool_volumes' "
cursor.execute(sql)
conn.commit()
conn.close()
return 1

except Exception,e:
conn.rollback()
return e

def call_sp_parm():
try:
#conn = pymssql.connect(host,port,user,password,dbname,charset="UTF-8",timeout=3)
conn = pymssql.connect(server=host,port=port,database=dbname,user=user,password=password,charset="UTF-8",timeout=3)
cursor = conn.cursor(as_dict=True)
cursor.callproc('sp_get_dbname', ('testdb',)) #sp名 和 参数
for row in cursor:
print row['name'],row['database_id'] #按列名取数
conn.close()
return 1

except Exception,e:
conn.rollback()
return e

def call_sp_no_parm():
try:
#conn = pymssql.connect(host,port,user,password,dbname,charset="UTF-8",timeout=3)
conn = pymssql.connect(server=host,port=port,database=dbname,user=user,password=password,charset="UTF-8",timeout=3)
cursor = conn.cursor(as_dict=True)
cursor.callproc('sp_get_dbname1',) #sp名 和 参数
for row in cursor:
print row['name'],row['database_id'] #按列名取数

conn.commit()
conn.close()
return 1

except Exception,e:
conn.rollback()
return e

call_sp_no_parm()
call_sp_parm()

fetch_row()

change_row()

python for MSSQLserver的更多相关文章

  1. python 处理中文 读取数据库输出全是问号

    ref:http://www.cnblogs.com/zhoujie/archive/2013/06/07/problem1.html 1.python连接mssql数据库编码问题 python一直对 ...

  2. 如何用 python 优雅地完成数据库课设

    0 前言 偶然间发现 Google 收录了学校实验打卡系统的接口,正好要做数据库课设,便拿来作为 environment. 机房居然装了 python ,早就听说 python 写爬虫速度一流,课上的 ...

  3. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  4. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  5. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  6. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  7. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  8. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  9. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

随机推荐

  1. windows下调试virtualbox的虚拟机串口

    1.我不知道其他人是怎么实现的,我是这么实现的. 2.下载一个叫做VSPD的软件,其作用是在windosw上虚拟几个串口出来. 下载完了安装,安装完了注册,如果不是花钱买来的,那就自己想办法注册吧.我 ...

  2. ORA-12560: TNS: 协议适配器错误 ORA-12154: TNS: 无法解析指定的连接标识符

    在国庆期间,数据库存储过程在通过dblink跨库调用存储过程时,错误日志中记录了ORA-12560: TNS: 协议适配器错误的异常日志. 偶尔用PL/SQL连接数据库时,又频繁提示:ORA-1215 ...

  3. 微信企业号办公系统-图片预览放大功能-previewImage

    在微信里看过文章的应该知道,文章里的图片点击后可以放大.分享和保存. 然而自己在微信里开发的网页,里面的图片点击后没办法实现这个效果,然后就去看了下微信JS文档,里面有个previewImage可以调 ...

  4. 初用idea建立javaweb遇到的问题与心得

    1.直接用idea建立的web项目,其自动生成的web.xml里version=3.1,这样的话建立servlet-name等标签会报错(因为3.1不支持这种做法,更提倡用注解的办法),解决办法是将w ...

  5. git revert和git reset的区别

    git revert 是撤销某次操作,此次操作之前的commit都会被保留 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区 具体一个例子,假设有三个commit, git s ...

  6. 用Java实现简单的web服务器

    运行结果: 1.WebServer.java文件 package webserver; import java.io.*; import java.net.*; public class WebSer ...

  7. jquery 时间戳与日期转换

    (function($) { $.extend({ myTime: { /** * 当前时间戳 * @return <int> unix时间戳(秒) */ CurTime: functio ...

  8. 【Java】实战Java虚拟机之五“开启JIT编译”

    今天开始实战Java虚拟机之五“开启JIT编译” 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实战Ja ...

  9. 浅析Java中CountDownLatch用法

    http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315652.html

  10. FJNU 1196 汪老司机(DP or 建图+最短路)

    1196: 汪老司机 Time Limit: 1000 MS         Memory Limit: 257792 KB 64-bit interger IO format: %lld       ...