2009-08-21 23 views
1

私は自分自身のニーズに合わせてCLSQL抽象を変更したいと考えています。私はclsql-sysパッケージを使用していましたが、それは私のニーズのほとんどに合っています。しかし、結果セットからフィールド名とフィールドタイプのリストを取得する方法を見つけることができません。実際には、私はちょうど型を取得するために何も見つけることができないようです(私はデータベースのクエリ結果セットメソッドにちょうどハックすることができます)。結果セットからCLSQLのフィールド名と型を取得する

ありがとうございました! Jieren manual entry for the query function状態として

答えて

1

私は最終的にこれを行う方法を見つけましたが、MySQLとOracleに対してのみ、一般的な機能はもはや有効になりません。それはまた、非常にハックです(私は種類をハードコーディングしました)

私はここで、これを文書化してきました: http://www.jierenchen.com/2009/08/solution.html

は、あなたがこのことについて質問があれば、私は電子メールで知らせてください。

1

:フィールド名は=>

を引き起こすflatp &鍵データベース結果-タイプ

クエリクエリ表現...

フィールド - 名前ブール値。デフォルト値はTです。Tの場合、この関数はを返します。 のフィールド名のリスト。 NILの場合、この関数は1つの値 - 行のリストのみを返します。

(強調鉱山)。それがフィールド名を取得する方法です。フィールドタイプについては、Hm。たとえば、クエリのような種類を供給したいと思う。このマニュアルでは、実際の結果セットから型を取得することについては言及していません。

+0

よくclsql:queryの問題は、それがクエリを実行し、リストの大きな太ったリストとしてすべてを返します。私は本当にそれを望んでいない。クエリの実行とそれが意味を成すならば、戻り値の生成を切り離したいと思います。理想的には、(clsql-sys:database-query-result-set)を実行し、結果セットを取得してから、その結果セットからフィールド名とフィールドタイプを取得するために何かを実行します。 – Jieren

+0

合意。 CLSQLの高水準インタフェースは、とりわけ、一度に一番良い行が消費される大きな結果セットをクエリが返すことがわかっている場合は、やや厄介です。しかし、ドキュメントによると、マップ・クエリもドゥ・クエリも、結果からのデータ以外は取得できません。 – Dirk

関連する問題