Jython zxJDBC.cursor用于会话变量的fetchone(),我得到一个数组

时间:2009-08-29 08:47:03

标签: jython

我使用Jython2.5.0,mysql-connector-java-5.0.8-bin.jar,因为我的服务器是Mysql5.0.38 我的Jython应用程序中存在问题。

两个功能:

def act_query(query):  
    connection = conn    //conn is global and has been assigned when called  
    cursor = connection.cursor()  
    num_affected_rows = cursor.execute(query)  
    cursor.close()  
    connection.commit()  
    return num_affected_rows  

def get_row(query):  
    connection = conn  
    cursor = connection.cursor()  
    cursor.execute(query)  
    row = cursor.fetchone()  
    cursor.close()  
    return row  

然后我做这样的事情:

query = """SELECT count(*) from test_db.test_table1 into @max"""  
act_query(query)  
get_query= """ select @max """  
row = get_row(get_query)  
print row  

输出类似于:array('b', [49, 52, 54, 50, 56, 48, 52])

我试着找到原因,然后进行测试:

test_query = """select count(*) from test_db.test_table1"""  
row = get_row(test_query)  
print row  

输出是正确的答案

实际上这是CPython中的一个脚本,首先使用MySQLdb,然后用zxJDBC将其转换为Jython 它在CPython中运作良好但现在无法正常工作 在CPython中,光标可以定义为

cursor = connection.cursor(MySQLdb.cursors.DictCursor)

但是在zxJDBC中似乎没有选择创建游标 这是什么原因?
请告诉我方式。谢谢!

1 个答案:

答案 0 :(得分:1)

我从jython mailist那里得到了答案。 JDBC获取的会话变量是varbinary类型。 zxJDBC使它成为一个数组。可以通过str(byte [])将数组转换为int来获得正确的输出。