2009-08-21 7 views
1

Je cherche donc à modifier les abstractions CLSQL pour répondre à mes propres besoins. J'ai utilisé le paquetage clsql-sys et cela correspond à la plupart de mes besoins. Cependant, je n'arrive pas à trouver comment obtenir une liste de noms de champs et de types de champs à partir du jeu de résultats. En fait, il me semble que je ne trouve rien pour obtenir des types (noms que je peux simplement hacker dans la méthode database-query-result-set.)Récupérer des noms de champs et des types dans CLSQL à partir d'un ensemble de résultats

Toute aide serait grandement appréciée, surtout sur les types.

merci! Jieren

Répondre

1

J'ai finalement découvert comment faire cela, mais seulement pour MySQL et Oracle, ce qui rend les fonctions génériques non plus universellement valides. Il est également très hacky (je l'ai Hardcoded les types)

J'ai documenté ce ici: http://www.jierenchen.com/2009/08/solution.html

Faites-moi savoir par e-mail si vous avez des questions à ce sujet.

1

Comme les manual entry for the query function états:

requête expression de requête & résultat-types de bases de données clés flatp champ noms => Résultat

...

feld noms Un booléen avec une valeur par défaut de T. Lorsque T, cette fonction renvoie une seconde valeur d'une liste de noms de champs. Lorsque NIL, cette fonction renvoie uniquement une valeur - la liste des lignes.

(emphase mienne). Voilà comment vous pouvez obtenir les noms de champs. Comme pour les types de champs ... Hm. Semble, comme requête veut être nourri les types. Le manuel ne dit rien sur l'obtention des types du jeu de résultats actuel.

+0

Bien le problème avec clsql: query est qu'il exécute la requête et renvoie tout comme une grosse liste de listes. Je ne veux vraiment pas ça. Je veux découpler l'exécution de la requête et la génération des valeurs de retour si cela a du sens. Idéalement, je ferais (clsql-sys: base de données-requête-résultat-ensemble), obtenir le jeu de résultats, puis exécuter quelque chose pour obtenir les noms de champs et les types de champs de ce jeu de résultats. – Jieren

+0

D'accord. L'interface de haut niveau CLSQL est quelque peu gênante, en particulier si vous savez que votre requête retournera un grand ensemble de résultats, qui serait mieux consommé une ligne à la fois. Mais selon les docs, ni map-query ni do-query ne vous permettent de récupérer autre chose que les données du résultat. – Dirk

Questions connexes