2013-03-15 17 views
9

私はADOを使用しているDelphiでクエリマネージャを実行していますが、クエリによって返されるすべてのフィールドを知る必要があります。私は、特定のクエリで返されるすべてのフィールドと、このフィールドが何であるかのテーブルのようなフィールド情報を私に返す関数を呼び出す必要があります。MSSQLを使用した結合クエリのフィールドからテーブル名を取得する方法は? (mysql_field_table相当)

PHPでmysqlに私はコマンドmysql_field_tableを持っています。このコマンドでは結果オブジェクトとフィールドインデックスを渡し、このコマンドは私のためにテーブル名を返します。

まあ、それは私の夢である、のようなクエリでフィールドインデックスからテーブル名を取得する:あなたは、RecordsetをフェッチFieldsコレクションを反復処理し、そしてテーブルを取得するためにTADODataSetを使用することができ

SELECT * FROM TableOne Left Join Table2 ON Table2.MasterField = Table1.KeyField 

答えて

12

/フィールド名は次のようになります:

for I := 0 to ADODataSet1.Recordset.Fields.Count - 1 do 
begin 
    TableName := ADODataSet1.Recordset.Fields[i].Properties['BASETABLENAME'].Value; 
    FieldName := ADODataSet1.Recordset.Fields[i].Properties['BASECOLUMNNAME'].Value; 
end; 
+1

あなたは私をどれほど助けてくれるのか分かりません。非常に非常に非常に感謝...私は非常に感謝しています...あなたは最高です!申し訳ありませんが、私は投票する評判は持っていませんが、自分の投票を感じます! – user2092868

+0

あなたは歓迎です:) – kobik

+0

+1これは可能だったか分からなかった。このプロパティは、すべてのデータベースタイプに共通ですか? – whosrdaddy

関連する問題