1

SQLiteDatabase.execSQLのドキュメントを読んで少し驚きました。「セミコロンで区切られた複数のステートメントはサポートされていません」と書かれています。

以前に読んでも驚かなかったでしょうが、私のアプリケーションでは次のようなコマンドを使用していました。

private static final String CREATE_TABLE =
    "create table "
    + TABLENAME + "("
    + COLUMN_ID     + " integer primary key autoincrement, "
    + COLUMN_CODE   + " text not null,"
    + COLUMN_NAME   + " text not null,"
    + COLUMN_STOCK  + " integer,"
    + COLUMN_PRICE  + " real,"
    + COLUMN_LISTPRICE + " real"
    + ");"
    + "create index "
    + TABLENAME + "_idx on " + TABLENAME
    + "(" + COLUMN_NAME + ", "
          + COLUMN_STOCK + ", "
          + COLUMN_PRICE
    + ");";

...
database.execSQL(CREATE_TABLE);

エラーや例外は見られませんでした (または、気づきませんでした)。ステートメントのインデックスが作成されていないということですか? それともドキュメントが間違っていますか?

4

1 に答える 1

-2

文字列間の連結を確認し、文字列変数の間にスペースを残していることを確認してください。例: "CREATE TABLE " +TABLE_NAME "( "+ COLUMN_ID+" INTEGER" + COLUMN_NAME +" TEXT )"

于 2013-05-28T07:20:08.357 に答える