我正在使用一个名为ceODBC的模块处理Python3,并试图在SQL Server 2005中调用一个存储过程。当我在sqlservermanagementstudio之外运行存储过程(不涉及Python)时,我得到了正确的结果,278行被插入到所需的表中,但是在Python中,它在31之后停止。有人能告诉我为什么存储过程会过早停止吗?这是我的Python代码:import ceODBC

connect=ceODBC.connect("""DSN=mydatabase;SERVER=xxx.xxx.x.xxx;

DRIVER={SQLServer};UID=user;PWD=password""", autocommit= True)

cursor = connect.cursor()

cursor.execute("""

CREATE TABLE mydatabase.dbo.Vision_TempTable

(

CustId bigint,

PayProcId int,

WebUserId bigint,

SubTypeId bigint,

PayAmt decimal(18,2),

Paydate datetime,

PayType varchar(1),

DateCreated datetime,

PayStatus varchar(1),

Account varchar(30),

V_Account varchar(30)

)""")#Create a temp table which will be used in the SP insert

connect.commit()

f=open('F:/clients/UTA/Vision/Data/ExternalPay_Data/lbox.txt')

CUST_ID=44

PAYPROCID=4

SUBTYPE_ID=64

WEBUSER_ID=2432

PAYTYPE='C'

PAYSTATUS='J'

for line in f: #parse a text file and insert values into temp table I just created

lineLength=len(line.strip())

if lineLength>=49:

visionAccount=int(line[10:17])

visionAccount=str(visionAccount)

recipientID=line[17:29]

invoiceAmount=line[31:39]

invoiceAmount=float(invoiceAmount)

pmtType=line[39:41]#make sure it will always be ck

pmtDate=line[45:47]+'/'+line[47:49]+'/'+line[41:45]

cursor.execute("""INSERT INTO mydatabase.dbo.Vision_TempTable

(CustId,PayProcId,WebUserId,SubTypeId,PayAmt,Paydate,

PayType,DateCreated,PayStatus,Account,V_Account)

VALUES

(?,?,?,?,?,?,?,GETDATE(),?,?,?)""",

CUST_ID,PAYPROCID,WEBUSER_ID,SUBTYPE_ID,

invoiceAmount,pmtDate,PAYTYPE,PAYSTATUS,recipientID,visionAccount)

connect.commit()

cursor.callproc("mydatabase.dbo.VisionExternalPMTS")# turn over control to SP

f.close()

connect.close()

print('Done')

为了得到完整的图片,我将包含以下存储过程:USE [mydatabase]

GO

/****** Object: StoredProcedure [dbo].[VisionExternalPMTS] Script Date: 06/16/2011 08:38:15 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[VisionExternalPMTS] as

BEGIN

declare @custid bigint,

@payprocid int,

@webuserid bigint,

@subtypeid bigint,

@payamt decimal(18,2),

@paydate datetime,

@paytype varchar(1),

@datecreated datetime,

@paystatus varchar(1),

@account varchar(30),

@v_account varchar(30)

DECLARE update_webPayments CURSOR for --select from temp table created in python

SELECT CustId,PayProcId,WebUserId,SubTypeId,PayAmt,Paydate,PayType,

DateCreated,PayStatus

FROM Vision_TempTable

OPEN update_webPayments

FETCH NEXT FROM update_webPayments INTO @custid,@payprocid,@webuserid,

@subtypeid,@payamt,@paydate,@paytype,@datecreated,

@paystatus

WHILE @@fetch_status = 0 --insert into target table

BEGIN

INSERT INTO WEBPAYMENTS(CUSTID,PAYPROCID,WEBUSERID,SUBTYPEID,

PAYAMT,PAYDATE,PAYTYPE,DATECREATED,PAYSTATUS)

VALUES (@custid,@payprocid,@webuserid,@subtypeid,@payamt,

@paydate,@paytype,@datecreated,@paystatus)

FETCH NEXT FROM update_webPayments INTO @custid,@payprocid,@webuserid,

@subtypeid,@payamt,@paydate,@paytype,@datecreated,

@paystatus

END

--DROP TABLE VISION_TempTable

END

create table语句和来自Python的初始insert总是有效的,我在temp表中得到278行,只有当我从Python调用存储过程时,才会出错。存储过程提前终止。我认为这是因为Python可能没有给它足够的时间在程序结束前执行,所以我尝试了放置某种计数器,但最终得到了数据库错误(尽管存储过程工作正常),所以我删除了计数器。我想要的是将控制权传递给存储过程,并且在存储过程完成之前不返回到python程序。任何帮助都将不胜感激。

谢谢

python 执行存储过程语句_从Python执行存储过程相关推荐

  1. python list存储对象_《python解释器源码剖析》第4章--python中的list对象

    4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...

  2. python怎么存储数据_【Python】存储数据

    很多程序都要求用户输入某种信息,如让用户存储游戏首选项或者提供可视化数据,不管专注什么,程序都要将数据进行存储,那么如何存储呢? JSON(JavaScript Object Notation)格式最 ...

  3. python多进程存储数据_[b0035] python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...

    1. Code #-*- coding: utf-8 -*- """多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一个做 ...

  4. python字典的存储结构_解决python字典结构内存暴涨问题

    背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍.此文解决这个问题 数据:word2vec训练的结果,word对应400维的词向量.词表共1.6 ...

  5. python 存储图片_使用python存储网页上的图片实例

    使用python存储网页上的图片实例 本文介绍在已知网络图片的地址下,存储图片到本地 本文例子随便选择LOFTER上一张图片,复制图片的地址,如下图所示 在Python中输入代码 import req ...

  6. python中级项目下载_中级Python复习:教程,项目思想和技巧

    python中级项目下载 本文旨在向Python初学者和开发人员介绍Python中使用的一些关键概念,这些概念一开始就没有讲授. 如果您可以创建二次方根求解器,则可以理解本文. 这些是我一天之内没有学 ...

  7. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  8. python大数据论坛_干货 | Python+大数据计算平台,PyODPS架构手把手教你搭建

    数据分析和机器学习 大数据基本都是建立在Hadoop系统的生态上的,其实一个Java的环境.很多人喜欢用Python和R来进行数据分析,但是这往往对应一些小数据的问题,或者本地数据处理的问题.如何将二 ...

  9. python 工资管理软件_基于[Python]的员工管理系统

    基于[Python]的员工管理系统 -------------------------------- 简介 使用python语言来完成一个员工管理系统,员工信息包含:员工工号,姓名, 年龄,性别,职位 ...

最新文章

  1. 001-SDK框架之Unity游戏调用SDK
  2. C++二维数组new小结(zz)
  3. Kafka消息投递语义-消息不丢失,不重复,不丢不重
  4. android adb 环境,Android安卓环境搭建及ADB常用命令
  5. SQL 必知必会·笔记7汇总数据——使用聚合函数
  6. [转载] python 需求清单_Python清单操作摘要
  7. leetcode Largest Rectangle in Histogram 单调栈
  8. 云画质助手iApp源码下载
  9. Minecraft安装资源包
  10. 【BX学习之打印机】 惠普5055(无线WiFi小型打印机双面复印扫描一体机)
  11. VideoShow -视频编辑 v8.8.4rc (更新版)
  12. 统计各个分数段的人数python_怎么利用Excel统计各分数段的人数
  13. 赶集网–免费发布信息
  14. 如何应用好计算机教学设计,计算机教学设计
  15. 平安科技从 Oracle 迁移到 UbiSQL 的实践
  16. 【Spring】IDEA中创建Spring项目
  17. 科技型中小企业认定标准
  18. vue中的@代表什么
  19. 看完不会写MVP架构我跪搓板
  20. Kali-msfdb-Postgresql报错排查处理

热门文章

  1. vb6.0快速操作注册表函数大全(仅字符串KEY值部分)
  2. 分治算法——快速排序
  3. Object-C 学习笔记(IOS程序设计课程)01
  4. Spring MVC 反射对象和依赖注入
  5. 谈谈一些有趣的CSS题目(十三)-- 巧妙地制作背景色渐变动画!
  6. 第25月第3天 Mxshop项目记录01
  7. 关于php调用.net的web service 踩过的坑
  8. 种树(codevs 1768)
  9. 设置韩澳大利亚sinox弄winxp清除字体和界面美观
  10. 游戏 TRAP(SNRS)AlphaBeta版本