当前位置: 首页 > 知识库问答 >
问题:

Jython ziclix JDBC,获取存储过程返回值-链式事务模式

段干庆
2023-03-14

我正在尝试获取Sybase用户定义存储过程返回的值,下面是代码片段。

from com.ziclix.python.sql import zxJDBC

def callStoredProc(conn, procName, *args):
    conn.execute("USE DB")
    sql = """DECLARE @ret int
             EXEC @ret = %s %s
             SELECT @ret""" % (procName, ','.join(['?'] * len(args)))
    return int(conn.execute(sql, args).fetchone()[0])

jdbc_url  = "jdbc:sybase:Tds:192.168.1.100:3397/stagingdb"
username  = "sa"
password  = ""
driver    = "com.sybase.jdbc4.jdbc.SybDriver"
conn      = zxJDBC.connect(jdbc_url, username, password, driver)
cursor = conn.cursor()

print callStoredProc(cursor, "usp_find", "Apples" )

但当我运行脚本时,它说;

共有1个答案

齐栋
2023-03-14

我不知道如何更改链式转换模式,但我希望您尝试“清除”JDBC和CallableStateMet。这样的代码看起来像(我没有Sybase,所以无法测试):

db = DriverManager.getConnection(db_url, usr, passwd)
proc = db.prepareCall("{ ? = call usp_find(?) }");
proc.registerOutParameter(1, Types.INTEGER)
proc.setString(2, "Apples");
proc.execute();
r = proc.getInt(1)
print('result: %d' % (r))
 类似资料:
  • 本文向大家介绍使用C#代码获取存储过程返回值,包括了使用C#代码获取存储过程返回值的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接给大家贴C#代码了。 ps:在C#中调用存储过程中的两种返回值

  • 本文向大家介绍Python中执行存储过程及获取存储过程返回值的方法,包括了Python中执行存储过程及获取存储过程返回值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中执行存储过程及获取存储过程返回值的方法。分享给大家供大家参考,具体如下: 在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: 1. 使用adodbapi 2. 使用pymssq

  • 我有一个存储过程,它接受参数并返回一个长值。 我如何使用jdbcTemplate来调用这个存储过程并获得返回的值。 这样对吗?

  • 问题内容: 我的团队正在使用基于python的Wiki服务器,该服务器调用SQL Server数据库上的存储过程。理想情况下,我们希望从存储过程中返回整数值(1,0,-1)以显示基本结果。 根据Google Groups上 的2008年主题,pyodbc不支持返回值,因此另一种选择是将结果选择为一行,然后进行检查。还是这样吗?是否有(受支持和记录的)编程方式来检查SQL存储过程的返回值?(如果是这

  • 问题内容: 我希望能够通过脚本的返回值定义变量。这是我目前拥有的: 我已经检查了SCRIPT的返回值,但是,当我尝试设置此变量时,它总是返回0(http://docs.python.org/library/subprocess.html#subprocess.call)。我将如何运行此脚本并捕获返回值以将其存储为变量? 问题答案: 使用代替。

  • 本文向大家介绍MSSQL事务的存储过程,包括了MSSQL事务的存储过程的使用技巧和注意事项,需要的朋友参考一下 在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rType