`
peikona
  • 浏览: 50761 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Python使用SQL SERVER存储过程

阅读更多

在工厂里难免要用到系统控制,这样的控制系统一般称为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语句。

 

各位大侠,如果有更好的方法,不妨共享一下。

分享到:
评论

相关推荐

    Python访问SQLServer数据库

    `给SQLServer数据库配置DSN.doc`文档很可能是指导如何创建DSN的详细步骤。 2. **建立连接**:使用`pyodbc.connect()`函数建立连接。基本语法如下: ```python import pyodbc conn_str = ( r'DRIVER={SQL ...

    基于Python和SQL Server的实验室管理系统_python_数据库管理系统_

    【基于Python和SQL Server...开发者通过Python编写后端逻辑,利用SQL Server存储和管理数据,并通过GUI提供用户友好的交互界面。这样的系统有助于提升实验室的管理效率,减少人为错误,促进教学与科研工作的顺利进行。

    python+sqlserver教务管理系统数据库应用课程设计

    【Python与SQLServer教务管理系统数据库应用课程设计】 在信息技术高度发达的今天,数据库管理系统在各行各业的应用日益广泛,尤其在教育领域,教务管理系统的构建是提升教学效率、优化资源分配的重要手段。在这个...

    基于Python和SQL Server的实验室管理系统.rar

    标题中的“基于Python和SQL Server的实验室管理系统”表明这是一个使用Python编程语言与SQL Server数据库管理系统构建的实验室管理软件。这个系统可能用于高校、研究机构或企业的实验室,旨在提高实验设备的管理和...

    基于Python的SQL Server海量数据转移的研究与实现.pdf

    Python不仅能够执行复杂的数据处理逻辑,还可以调用SQL Server的存储过程,借助存储过程的事务特性确保数据操作的安全性。在实现海量数据转移时,Python可以将数据先从MSSQL Server中读取出来,并通过特定算法处理后...

    python+sql sever 数据库系统大作业实验 教学信息管理系统

    在本实验项目“python+sql sever 数据库系统大作业实验 教学信息管理系统”中,我们将探讨如何使用Python编程语言与SQL Server数据库进行交互,实现一个教学信息管理系统的各项功能。这个项目包括了数据库设计、...

    基于Python和HTML的批量更新SQL Server存储过程自动化工具源码设计

    本项目是一款基于Python和HTML的自动化工具源码设计,旨在实现SQL Server存储过程的批量更新。该工具包含199个文件,涵盖多种类型,包括76个DLL文件、75个QM文件、12个PYD文件、5个TOC文件、5个PYC文件、4个XML文件...

    基于sqlserver+python-tkinter的数据库课程设计

    【标题】"基于sqlserver+python-tkinter的数据库课程设计"揭示了这个项目的核心技术栈,即使用SQL Server作为数据库管理系统,结合Python的Tkinter库进行图形用户界面(GUI)开发,完成一个课程设计任务。...

    Python如何向SQLServer存储二进制图片

    本篇将详细介绍如何使用Python连接SQL Server并存储二进制图片。 首先,确保你已经安装了必要的库。这里使用了`requests`库来下载图片,`adodbapi`库来连接SQL Server数据库。如果你还没有安装,可以通过以下命令...

    Python中执行存储过程及获取存储过程返回值的方法

    在Python编程中,有时我们需要与数据库进行交互,执行SQL存储过程就是其中的一种常见任务。存储过程是一组预先编译的SQL语句,可以提高数据库操作的效率和安全性。本篇文章将详细讲解如何在Python中执行存储过程以及...

    python连接sqlserver数据库自己写的盲注sqlserver的python脚本

    如果"äעsqlserver.py"是编码问题导致的错误显示,实际文件名可能是"sqlserver.py"。这个脚本应当包含了上述的所有功能,如连接数据库、多线程查询、登录验证以及盲注逻辑。 总结,Python连接SQL Server涉及数据库...

    python连接sqlserver数据库

    在压缩包`sqlserver_py-master`中,可能包含了一个简单的Python脚本示例,展示了如何使用pyodbc连接SQL Server数据库并执行基本的查询操作。你可以下载这个压缩包,并参考其中的代码来了解具体实现。记得将示例中的...

    中学排课管理系统(python+sql server+图形化用户界面)

    4)创建存储过程检测指定教师、指定节次是否有课; 5)创建存储过程生成指定班级的课程表;生成指定老师的课程表 6)创建触发器,当给教师新安排一门课时,能自动修改教师本学期所任课程门数。 7)建立数据库相关表...

    python+SQLsever+tkinter学生宿舍管理系统

    2. SQL Server:作为关系型数据库管理系统,SQL Server提供了强大的数据存储和处理能力,保证了大量学生数据的安全性和稳定性。通过Python接口,可以执行复杂的SQL查询,满足系统数据操作的需求。 3. Tkinter:作为...

    基于python和SQL server的 detect auto classify system

    标题中的“基于python和SQL server的detect auto classify system”指的是一个使用Python编程语言与SQL Server数据库结合构建的自动分类系统。这个系统的核心功能是检测和自动分类数据,可能广泛应用于数据分析、...

    精选_基于Python和SQL SERVER数据库实现的实验信息综合管理系统_源码打包

    在实验信息管理中,SQL SERVER可以存储大量的实验数据,包括实验名称、实验目的、实验步骤、实验结果等,同时支持复杂的数据查询和分析,满足管理需求。通过Python与SQL SERVER的结合,可以实现数据的实时读取、更新...

    PyPI 官网下载 | tencentcloud-sdk-python-sqlserver-3.0.356.tar.gz

    《PyPI官网下载的tencentcloud-sdk-python-sqlserver-3.0.356.tar.gz:腾讯云Python SQL Server SDK详解》 在Python开发中,PyPI(Python Package Index)是开发者获取和分享软件包的重要平台。这次我们关注的是在...

    sql server 帮助文档官方版

    此外,SQL Server 还提供了机器学习服务,用户可以使用 Python、R 语言等来开发机器学习模型。 监视和优化 SQL Server 提供了多种监视工具,包括使用 Azure Data Studio、cmdlet 和笔记本等。用户可以使用这些工具...

Global site tag (gtag.js) - Google Analytics