4

うまくいけば、誰かが私を助けてくれることを願っています。

coldfusion を使用して mysql クエリの列名を取得する 2 つの簡単な方法については、ほとんどの人がすでに知っているでしょう。

1. <cfset arrColumns = ListToArray(thequery.columnList) />
2. <cfset arrColumns = getMetaData(thequery) />

どちらも、列名の配列を正常に作成します (1 つは英数字順、2 つはデータベースから取得した順)。

例えば:

<cfquery name="thequery" datasource="thedatasource">
    SELECT a.title, b.name 
    FROM tablea a
    JOIN tableb b ON b.a_id = a.id
</cfquery>
<cfset arrColumns = ListToArray(thequery.columnList) />

上記は、値を含む配列を正常に出力します。

arrColumns[1]: "name" 
arrColumns[2]: "title"

私がする必要があるのは、出力することです:

arrColumns[1]: "tableb.name" 
arrColumns[2]: "tablea.title"

...基本的には、列名とともにデータベース テーブル名を含めます。これはしばらく頭を悩ませてきました。どんな助けでも大歓迎です。私はすでにGoogleとstackoverflowを検索しましたが、答えは見つかりませんでした.

ありがとうございました

4

2 に答える 2

1

まず第一に、JDBC は必要なテーブル情報を確実に公開するわけではなくgetTableName()、ColdFusion の実装の関連するメソッド ( ) は単純に例外を発生させます。したがって、短いバージョンでは、やりたいことをやりたいようにできないということです。

とはいえ、とにかく物事に別のアプローチをとるべきだと思います。データとスキーマ情報の両方を含む 1 つのデータ構造を持つという考えは、私には間違っているようです。

于 2013-10-08T10:28:08.050 に答える