- - PR -
テーブルのフィールド情報を取得するには?
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-10-30 21:21
現在、データベースを操作するためのシステムを開発しています。
システムを利用するユーザが、自分でテーブルを作成するため、 どんなテーブルが作られ、どんな型の、どんな名前の列が出来るのか、 開発者側で前もって予想することが出来ません。 そのためデータベース内に存在するテーブルから、 列名やデータ型などのフィールド情報を取得し、 その情報を元に、色々な処理を行いたいと考えています。 テーブルのフィールド情報を取得するにはどうしたらよいでしょうか? | ||||
|
投稿日時: 2002-10-30 21:59
http://www.wakhok.ac.jp/~tetuo/j2ee/jdbc3.html
| ||||
|
投稿日時: 2002-10-30 22:38
ははぁ〜。なるほど。
何となく感じはつかめました。 まずはこれで、試してみたいと思います。 しょむさんありがとうございました。 | ||||
|
投稿日時: 2002-11-01 07:24
ResultSetMetaData # getColumnTypeName();
を使用して、データ型を取得したのですが、 どうやら、標準 SQL しか識別できないようで、 PostgreSQL や MySQL 固有のデータ型は、 勝手に変換されて表示されてしまいます。 PostgreSQL や MySQL 固有のデータ型を取得して、 そのまま表示させることは出来ないんですかね〜? | ||||
|
投稿日時: 2002-11-01 12:33
MySQLのことしか分からなく恐縮ですが、このSQL
DESC テーブル名 フィールド名 を実行した結果セットから、Typeフィールドの値を引っ張ってきてあげて、文字列を正規表現クラスなんかに通してあげれば、型の名前や設定できる値を簡単に扱うことができますよ。昔はこれで設定できるデータを抽出して、ドロップダウンリスト用のHTMLに変換して使ってたりしてましたよ。PHPとかでも同じ方法でMySQLのフィールド型情報を扱ってました。 | ||||
|
投稿日時: 2002-11-01 20:58
小僧さんありがとうございます。 おっしゃることはだいたい分かるのですが、何分経験不足なため、 もう少し具体的に教えていただければうれしいです。 よろしくお願いします。 | ||||
|
投稿日時: 2002-11-02 11:55
JDBC ドライバが製品依存の情報を返すんじゃ標準 API としての意味がないですからね。
DBMS によっては、ある Query を実行すれば、メタ情報を取れる方法がある、ということです。 使いたい DBMS のマニュアルを目を皿にして探してください。 独自拡張としてそういう機能があればそれを使いましょう。 | ||||
|
投稿日時: 2002-11-03 14:04
ありました〜!! しょむさん。ありがとうございます。 これを使えば何とかなりそうです。 早速実験〜♪ | ||||
