今回は作成したテーブルから列(カラム)名を取得します。
テーブル内容を表示させる事にも関わってきます。
[java]
public String[] getColumnNames(String tableName) throws SqlJetException{
// 列名格納配列
String[] columnNames = null;
// 読み込みモード
db.beginTransaction(SqlJetTransactionMode.READ_ONLY);
// テーブルを開く
ISqlJetTable table = db.getTable(tableName);
// テーブルを明確化(?)
ISqlJetTableDef tabledef = table.getDefinition();
// 列名を取得
List<ISqlJetColumnDef> columnList = tabledef.getColumns();
// 列名格納配列を初期化
columnNames = new String[columnList.size()];
// 格納
for(int i = 0; i < columnNames.length; i++){
columnNames[i] = columnList.get(i).getName();
}
db.commit();
return columnNames;
}
[/java]
自分でもあまりわかっていないことが多いので、ご存知の方はコメントしていただけるとありがたいです。
列名を呼び出すまでにISqlJetTableからISqlJetTableDefと2段階踏んでいます。これはgetColumns()を呼び出すために遡っていったらこうなりました。
そして列名はList型で返されるので扱いやすいようにString型配列に格納しなおしています。あくまでここは個人的なところなのでそのままでもいいですね。
コメント