OOobbs3/71
質問
いつもお世話になっております。 OpenOffice.org3.2.1でBaseを使用しております。 unoidl.com.sun.star.sdbc.XConnectionサービスを使用してテーブルに接続し、unoidl.com.sun.star.sdbc.XStatementサービスの executeQueryメソッドやexecuteUpdateメソッドでSQLの実行ができることは確認しました。 そこで、テーブルのフィールドのタイプを取得することはできますでしょうか?(VARCHAR(20)等) 取得メソッドがあるのではと探していましたが、なかなか見つけることができずに困っております。 もしわかる方いらっしゃいましたら、よろしくお願い致します。 回答
Sub GetColumnInfo oCurrentController = ThisComponent.getCurrentController() oActiveConnection = oCurrentController.ActiveConnection oTables = oActiveConnection.getTables() oObj_1 = oTables.getByIndex(0) oColumns = oObj_1.getColumns() oElementNames = oColumns.getElementNames() oColumn = oColumns.getByName("NAME") msgbox "type: " & CStr(oColumn.Type) & ", " & _ "len: " & CStr(oColumn.Precision) ' 12: VARCHAR End Sub カラムのプロパティ値は com.sun.star.sdbcx.Column のサービスで定義されています。 また、Type の値は com.sun.star.sdbc.DataType の定数で定義されています。 ちなみに、X から名前が始まっているのはインターフェースでサービスではありません。 どこかに書いたはずとおもったら、OOoBasic/Base/Columnの表と同じですね。これじゃ分かりにくいですねぇ。
感想,コメント,メモ
はにゃ?さん、早速のご回答ありがとうございます。書いてある場所があったんですね、探し方がまだまだ甘いようですいません。 いろいろと詳しく説明していただきありがとうございます。 |