2009-08-29 6 views
0

J'utilise Jython2.5.0, mysql-connector-java-5.0.8-bin.jar, parce que mon serveur est Mysql5.0.38 Il y a un problème dans mon application Jython.Jython zxJDBC.cursor fetchone() pour une variable de session, j'obtiens un tableau

Deux fonctions:

def act_query (requête):
connexion = conn // conn est global et a été attribué lorsqu'il est appelé
curseur = connection.cursor()
num_affected_rows = (cursor.execute requête)
cursor.close()
Connection.commit()
num_affected_rows de retour

def get_row (requête):
connexion = conn
curseur = connection.cursor()
cursor.execute (requête)
rang = cursor.fetchone()
cursor.close()
retour ligne

Puis-je faire quelque chose comme ceci:
requête = "" "SELECT cOUNT (*) de test_db.test_table1 en @max" ""
act_query (requête)
get_query = "" "select @max """
row = get_row (get_query)
imprimer ligne
La sortie est quelque chose comme: array ('b', [49, 52, 54, 50, 56, 48, 52])

J'essaie de trouver la raison et faire un test comme:
test_query = "" "select count (*) à partir test_db.test_table1" ""
rang = get_row (test_query)
imprimer ligne
la sortie est la bonne réponse

Dans fait ce script dans CPython d'abord avec MySQLdb et je le transforme en Jython avec zxJDBC
Cela a bien fonctionné dans CPython mais cela ne peut pas fonctionner maintenant.
En CPython le curseur peut être défini comme
curseur = connection.cursor (MySQLdb.cursors.DictCursor)
mais zxJDBC il semble y avoir aucun choix pour la création d'un curseur.
Est-ce la raison?
S'il vous plaît montrez-moi le chemin. Merci!

+0

J'ai la réponse. zxJDBC obtient une variable de session pour être un tableau d'octets qui peut être converti à la bonne réponse par str() –

Répondre

1

J'ai reçu la réponse de jython mailist. Une variable de session obtenue par JDBC est de type varbinary. zxJDBC fait que c'est un tableau. La bonne sortie peut être obtenue en convertissant le tableau en int avec str (byte []).

Questions connexes