* テーブル [#m076b33f] データソースに接続した後テーブルコンテナから個々のテーブルの情報にアクセスできます。ここでのテーブルはテーブルの定義です。 oConnection = oDataSource.getConnection("", "") oTables = oConnection.getTables() ** 新規テーブル [#ucd0317f] 新しいテーブルはテーブルコンテナから DataDescriptor を作成してそれを編集、追加します。テーブルのカラムはカラムコンテナから DataDescriptor を作成、編集、追加します。 テーブルをコンテナに追加するまでに設定できるカラムの属性はデータベースのテーブルのカラムの属性のみで、Base の UI での属性は設定できません。たとえば、カラムではデーターの長さなどは指定できますが、表示フォーマットは後で設定することになります。 ' 新規テーブルの作成 oTable = oTables.createDataDescriptor() ' テーブル名 oTable.Name = sTableName ' カラムコンテナ oColumns = oTable.getColumns() ' カラムの編集 oDataTypes = com.sun.star.sdbc.DataType ' 新しいカラム oDesc = oColumns.createDataDescriptor() oDesc.setPropertyValues( _ Array("Name", "Type"), _ Array("ID", oDataTypes.INTEGER)) oDesc.IsNullable = 0 oDesc.IsAutoIncrement = True 'oDesc.FormatKey = 5001 ' UI 表示用のためここで設定しても効果なし 'カラムを追加 oColumns.appendByDescriptor(oDesc) '.... 他のカラム設定 ' テーブルをコンテナに追加する oTables.appendByDescriptor(oTable) ' UI でのカラム設定 oTable = oTables.getByName(sTableName) oColumns = oTable.getColumns() ' 日付の表示を year/month/date ? に変更 oColumn = oColumns.getByName("DATE") oColumn.FormatKey = 5036 |