2009-08-29 9 views
0

私のサーバがMysql5.0.38であるため、Jython2.5.0、mysql-connector-java-5.0.8-bin.jarを使用しています 私のJythonアプリケーションの問題。Jython zxJDBC.cursorセッション変数のfetchone()には配列があります

2つの関数:

デフact_query(クエリ):
接続= CONN // connはグローバルであり、
カーソル= connection.cursor呼び出されたときに割り当てられている()
num_affected_rowsは= cursor.execute(クエリ)
cursor.close()
connection.commit()
戻りnum_affected_rows

デフget_row(クエリ):
接続= CONN
カーソル= connection.cursor()
cursor.execute(クエリ)
行= cursor.fetchone()
cursor.close()
戻り行

、私は何かをこのように: "@maxにtest_db.test_table1 SELECT COUNT(*)FROM"
クエリ= "" ""
は act_query(クエリ)
GET_QUERY = "" " "
を" @max選択"アレイ( 'B'、[49、52、54、50、56、48、52])

Iの理由を見つけることを試みる:行= get_row(GET_QUERY)
印刷行
出力は次のようですなどの試験MAKE: "test_db.test_table1からSELECT COUNT(*)"
test_query = "" ""
行= get_row(test_query)
印刷行
出力は正しい答え

であります実際これはCPythonのスクリプトでMySQLdbで始まり、zyJDBCを使ってJythonに変換します
CPythonではうまくいきましたが、今は動作しません。
CPythonでは、カーソルは
カーソル= connection.cursor(MySQLdb.cursors.DictCursor)
と定義できますが、zxJDBCではカーソルを作成するための選択肢がないようです。
これが理由ですか?
私に方法を示してください。ありがとう!

+0

私は答えを得ました。 zxJDBCセッション変数をstr()によって正しい答えに変換できるバイト配列にする –

答えて

1

私はjython mailistから回答を得ました。 JDBCによって取得されるセッション変数は、varbinary型です。 zxJDBCはそれを配列にします。正しい出力は配列をintにstr(byte [])で変換することで得ることができます。

関連する問題