Top > OOoBasic > Base > Tables

* テーブル [#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




Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes