在工厂里难免要用到系统控制,这样的控制系统一般称为SFCS,系统控制的原理是把数据都放到数据库里,以后在产品的每一个测试步骤中从数据库里查询此产品的状态(是否在此测试工位能测试,是否已达到最大测试次数等),而一般负责SFCS的同事会给出存储过程或DLL给测试部门调用。下面就谈一下从Python调用存储过程的方法(Windows平台下,有输出参数的存储过程):
存储过程定义基本如下:
ALTER procedure [dbo].[mysp]
@Station varchar(50),
@SN varchar(50),
@Info varchar(500) output,
@Msg varchar(500) output
1. 使用adodbapi
from adodbapi import connect
server = 'dbserver'
user = 'username'
password = 'password'
database = 'database'
sp = 'sp'
station = 'station'
sn = 'sn'
try:
db = connect('Provider=SQLOLEDB.1;Data Source=%s;Initial Catalog=%s;\
User ID=%s;Password=%s;'%(server, database, user, password))
except Exception, e:
print e
else:
cur = db.cursor()
msg = cur.callproc(sp, (station, sn)) #参数与存储过程有关
if len(msg) > 1:
if msg[-1] is None:
print 'sn is ok. Can be test at this station'
else:
print msg[-1]
finally:
try: db.close()
except: pass
2. 使用pymssql
from pymssql import connect
server = 'dbserver'
user = 'user'
password = 'password'
database = 'database'
sp = 'sp'
station = 'station'
sn = 'sn'
sql = ['set nocount on']
sql.append('declare @Msg varchar(500)')
sql.append('declare @return_value varchar')
sql.append("exec @return_value = %s @Station = '%s', @SN = '%s', @Info = '@Info', @Msg = @Msg output")
sql.append('select @Msg, @return_value')
sql = '\n'.join(sql) % (sp, station, sn)
def ffchk(server, user, password, database, sql):
try:
db = connect(host = server,
database = database,
user = user,
password = password,
login_timeout = 10)
cur = db.cursor()
cur.execute(sql)
except Exception, e:
print e
else:
cur.nextset() # 要加上这句才能通过fetch函数取到值
print cur.fetchone()
finally:
try: db.close()
except: pass
总结:
1. adodbapi简单,不用写一串的sql语句,但是不能取到返回的Error Code,只能取到返回的错误信息,也可能是我没找到方法
2. pymssql与第一条相反,可以取到返回值和错误信息,但要写sql语句。
各位大侠,如果有更好的方法,不妨共享一下。
分享到:
- 2009-07-16 10:53
- 浏览 3235
- 评论(0)
- 论坛回复 / 浏览 (0 / 6795)
- 查看更多
相关推荐
模块一项目源码(1).rar
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
<项目介绍> - 使用php实现的一个rbac权限管理微型系统 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
畅玩北海旅游网站 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
该MATLAB代码使用两步加权最小二乘法通过TDOA技术实现了二维目标定位。它通过随机生成的锚点和目标位置进行模拟,展示了如何通过迭代优化算法来提高位置估计的准确性。代码结构清晰,适合用于理解和实现基于TDOA的定位算法。
服务器可运行。实现文件复制。
基于vue和element-ui实现的可视化表单设计器,使用了最新的前端技术栈,内置了i18n国际化解决方案,可以让表单开发简单而高效。
环境说明: 开发语言:java 框架:ssm jdk版本:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse 部署容器:tomcat7+
基于java+sqlserver实现的电子通讯录(带系统托盘)(源码+数据库+系统详细配置方法)
入职资料整理小程序,能够整理入职资料
功能说明: 管理员:管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,业务员管理,汽车类型管理,租赁汽车管理,汽车租赁管理,汽车归还管理,租赁订单管理,检查信息管理,系统管理等功能。 用户:用户使用本系统涉到的功能主要有:首页,个人中心,汽车租赁管理,汽车归还管理,租赁订单管理,检查信息管理,我的收藏管理等功能。 业务员:业务员使用本系统主要包括首页,个人中心,汽车租赁管理,汽车归还管理,租赁订单管理,检查信息管理等功能。 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
基于python+Jupyter实现答题卡检测、试题切分、学生考号识别、选择题自动批改+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 项目简介: 多张图连续检测 功能:如果一套试卷的答题卡数量大于1,也支持检测,并且按试题顺序拼凑检测结果(即下面这套试卷假设存在位于第二张答题卡上的第八题,支持连续检测) 2、试题切割 功能: 将答题卡按试题切成一张张图片,并将图片与题序一一对应 程序能知道第六大题存在2张图片 3、学生考号识别 1)切割出学生手写的准考证号 2)识别出学生填充的准考证号 4、选择题自动批改检测 识别结果(key:题序,value:答案的索引): {1: [2], 2: [1], 3: [3], 4: [3], 5: [1], 6: [1], 7: [4], 8: [2], 9: [4], 10: [1], 11: [3], 12: [1], 13: [1], 14: [1], 15: [1]} 选择题自动批改支持以下变化 无论试题的候选项有四个还是五六七八个,都支持识别
StyleControls 5.80.7z
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
burp 破解工具
使用OpenGL实现渲染场景的shadow map。
在线画展系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
图片转PDF(不旋转),服务器可用,后缀名要标注好,支持常见的图片格式。
MCU:dsp28335;主电路使用simulink仿真,控制电路使用dsp进行运行;中间使用串口进行;具体请见博文: https://blog.csdn.net/qq_42151264/article/details/124994055?csdn