在工厂里难免要用到系统控制,这样的控制系统一般称为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
- 浏览 3236
- 评论(0)
- 论坛回复 / 浏览 (0 / 6795)
- 查看更多
相关推荐
`给SQLServer数据库配置DSN.doc`文档很可能是指导如何创建DSN的详细步骤。 2. **建立连接**:使用`pyodbc.connect()`函数建立连接。基本语法如下: ```python import pyodbc conn_str = ( r'DRIVER={SQL ...
【基于Python和SQL Server...开发者通过Python编写后端逻辑,利用SQL Server存储和管理数据,并通过GUI提供用户友好的交互界面。这样的系统有助于提升实验室的管理效率,减少人为错误,促进教学与科研工作的顺利进行。
【Python与SQLServer教务管理系统数据库应用课程设计】 在信息技术高度发达的今天,数据库管理系统在各行各业的应用日益广泛,尤其在教育领域,教务管理系统的构建是提升教学效率、优化资源分配的重要手段。在这个...
标题中的“基于Python和SQL Server的实验室管理系统”表明这是一个使用Python编程语言与SQL Server数据库管理系统构建的实验室管理软件。这个系统可能用于高校、研究机构或企业的实验室,旨在提高实验设备的管理和...
Python不仅能够执行复杂的数据处理逻辑,还可以调用SQL Server的存储过程,借助存储过程的事务特性确保数据操作的安全性。在实现海量数据转移时,Python可以将数据先从MSSQL Server中读取出来,并通过特定算法处理后...
在本实验项目“python+sql sever 数据库系统大作业实验 教学信息管理系统”中,我们将探讨如何使用Python编程语言与SQL Server数据库进行交互,实现一个教学信息管理系统的各项功能。这个项目包括了数据库设计、...
本项目是一款基于Python和HTML的自动化工具源码设计,旨在实现SQL Server存储过程的批量更新。该工具包含199个文件,涵盖多种类型,包括76个DLL文件、75个QM文件、12个PYD文件、5个TOC文件、5个PYC文件、4个XML文件...
【标题】"基于sqlserver+python-tkinter的数据库课程设计"揭示了这个项目的核心技术栈,即使用SQL Server作为数据库管理系统,结合Python的Tkinter库进行图形用户界面(GUI)开发,完成一个课程设计任务。...
本篇将详细介绍如何使用Python连接SQL Server并存储二进制图片。 首先,确保你已经安装了必要的库。这里使用了`requests`库来下载图片,`adodbapi`库来连接SQL Server数据库。如果你还没有安装,可以通过以下命令...
在Python编程中,有时我们需要与数据库进行交互,执行SQL存储过程就是其中的一种常见任务。存储过程是一组预先编译的SQL语句,可以提高数据库操作的效率和安全性。本篇文章将详细讲解如何在Python中执行存储过程以及...
如果"äעsqlserver.py"是编码问题导致的错误显示,实际文件名可能是"sqlserver.py"。这个脚本应当包含了上述的所有功能,如连接数据库、多线程查询、登录验证以及盲注逻辑。 总结,Python连接SQL Server涉及数据库...
在压缩包`sqlserver_py-master`中,可能包含了一个简单的Python脚本示例,展示了如何使用pyodbc连接SQL Server数据库并执行基本的查询操作。你可以下载这个压缩包,并参考其中的代码来了解具体实现。记得将示例中的...
4)创建存储过程检测指定教师、指定节次是否有课; 5)创建存储过程生成指定班级的课程表;生成指定老师的课程表 6)创建触发器,当给教师新安排一门课时,能自动修改教师本学期所任课程门数。 7)建立数据库相关表...
2. SQL Server:作为关系型数据库管理系统,SQL Server提供了强大的数据存储和处理能力,保证了大量学生数据的安全性和稳定性。通过Python接口,可以执行复杂的SQL查询,满足系统数据操作的需求。 3. Tkinter:作为...
标题中的“基于python和SQL server的detect auto classify system”指的是一个使用Python编程语言与SQL Server数据库结合构建的自动分类系统。这个系统的核心功能是检测和自动分类数据,可能广泛应用于数据分析、...
在实验信息管理中,SQL SERVER可以存储大量的实验数据,包括实验名称、实验目的、实验步骤、实验结果等,同时支持复杂的数据查询和分析,满足管理需求。通过Python与SQL SERVER的结合,可以实现数据的实时读取、更新...
《PyPI官网下载的tencentcloud-sdk-python-sqlserver-3.0.356.tar.gz:腾讯云Python SQL Server SDK详解》 在Python开发中,PyPI(Python Package Index)是开发者获取和分享软件包的重要平台。这次我们关注的是在...
此外,SQL Server 还提供了机器学习服务,用户可以使用 Python、R 语言等来开发机器学习模型。 监视和优化 SQL Server 提供了多种监视工具,包括使用 Azure Data Studio、cmdlet 和笔记本等。用户可以使用这些工具...