Je ne demande pas la SHOW COLUMNS
commandement.
Je souhaite créer une application qui fonctionne de manière similaire à heidisql, où vous pouvez spécifier une requête SQL qui, une fois exécutée, renvoie un jeu de résultats avec des lignes et des colonnes représentant le résultat de votre requête. Les noms des colonnes dans le jeu de résultats doivent correspondre aux colonnes sélectionnées telles que définies dans votre requête SQL.
Dans mon programme Python (utilisant MySQLdb
), ma requête ne renvoie que les résultats des lignes et des colonnes, mais pas les noms des colonnes. Dans l'exemple suivant, les noms des colonnes seraient ext
, totalsize
y filecount
. Le SQL sera finalement exclu du programme.
Le seul moyen que j'ai trouvé pour que cela fonctionne est d'écrire ma propre logique d'analyseur SQL pour extraire les noms des colonnes sélectionnées.
Existe-t-il un moyen simple d'obtenir les noms des colonnes pour le code SQL fourni ? Ensuite, j'ai besoin de savoir combien de colonnes la requête retourne ?
# Python
import MySQLdb
#===================================================================
# connect to mysql
#===================================================================
try:
db = MySQLdb.connect(host="myhost", user="myuser", passwd="mypass",db="mydb")
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit (1)
#===================================================================
# query select from table
#===================================================================
cursor = db.cursor ()
cursor.execute ("""\
select ext,
sum(size) as totalsize,
count(*) as filecount
from fileindex
group by ext
order by totalsize desc;
""")
while (1):
row = cursor.fetchone ()
if row == None:
break
print "%s %s %s\n" % (row[0], row[1], row[2])
cursor.close()
db.close()