- - PR -
Oracleテーブルの一意キーの取得方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-11-06 22:58
いつもお世話になっています。皆様のご意見、大変勉強になります。
このスレッドをご覧下さってありがとうございます。 今回、テーブルのキー情報の取得で行き詰まっており、皆様からヒントを頂きたく投稿いたしました。 現在 OS:WindowsXP VB.NET(VisualStudio2005)、 DB:OracleまたはSQLServerまたはAccess2003 で開発を行っています。 ODBC接続によってOracleまたはSQLServerのテーブルへアクセスし、任意のテーブルのキー情報を取得する機能を実装しようしており (1)OdbcDataAdapterで任意のテーブルに接続 (2).FillSchemaメソッドによってDataTableを取得 (3)DataTableのPrimaryKeyプロパティを参照 と考えました。 ここで問題が生じ、 プライマリキーが1列のみで構成されるテーブルの場合は、実際にPrimaryKeyにキー項目が設定されるのですが、 複数列から構成される一意キーを持つテーブルの場合、PrimaryKeyのLengthは0となり、情報が何も入りません。 下記に示す例の場合、社員情報テーブルであれば、PrimaryKeyプロパティに「社員番号」が設定されますが、 給与テーブルの場合、PrimaryKeyの構成要素は何もありません。 <例> 社員情報テーブル 社員番号 … キー 社員名 所属 給与テーブル 社員番号 … キー 支払月 … キー 支払金額 なお、Accessに関してのみ、上記手法で一意キーの情報も取得することができました。 OracleおよびSQLServerの場合、どうすれば一意キーの情報が取得できるでしょうか。 処理の考え方が根本より間違っているかもしれませんが、どうぞよろしくお願いします。 |
|
投稿日時: 2007-11-06 23:39
ODBCはわからないですが、OledbならGetOleDbSchemaTableでスキーマ情報にアクセスできます。
http://support.microsoft.com/kb/309488/ja もしくは、Oracleのデータディクショナリを検索すれば、キーの情報を取得できるはずです。 |
1