3

データベースをアタッチし、アタッチされたデータベースからすべての行をメインに挿入するのに問題があります。

これが私のコードです。

public void selectOldDb(String dbName) throws Exception {
    createNewDB();
    Class.forName("org.sqlite.JDBC");

    Connection connOldDb = DriverManager.getConnection("jdbc:sqlite:"+ dbName);
    String newDbName = getDirToNewDb();

    newDbName = newDbName + "auftraege.db";
    Connection connNewDb = DriverManager.getConnection("jdbc:sqlite:"+ newDbName);

    connNewDb.prepareStatement("ATTACH DATABASE \"" + connOldDb + "\" AS  fromDB").execute();

    connNewDb.prepareStatement("INSERT INTO main.auftraege  SELECT * FROM fromDB.SendeDS").execute();

    connNewDb.close();
    connOldDb.close();
}

挿入しようとするとこのエラーになります。

[SQLITE_ERROR] SQL エラーまたは不足しているデータベース (そのようなテーブルはありません: fromDB.SendeDS)

私は何を間違っていますか?

4

1 に答える 1

4

このATTACH DATABASEコマンドはファイル名を想定していますが、Connectionオブジェクトの表現を指定しています。

必要はありません。代わりconnOldDbに使用してください。dbName

于 2012-10-30T08:13:42.980 に答える