2012-03-15 15 views
2

TABLE_EVENTSに挿入しようとしたときにエラーが発生しましたが、TABLE_CONTACTSの挿入/問合せに問題はありません。ここに私の作成した文字列です:データベース作成ステートメントは2番目のテーブルを作成していませんか?

public void onCreate(SQLiteDatabase db){ 
      db.execSQL(DATABASE_CREATE); 
     } 

private static final String DATABASE_CREATE = 

      "create table "+ TABLE_CONTACTS + "(" + COLUMN_CONTACTS_LOOKUP 
      + " text primary key, " + COLUMN_CONTACTS_ADDED 
      + " real not null);" + 

      " create table "+ TABLE_EVENTS +"("+ COLUMN_ID +" integer primary key autoincrement, "+ 
      COLUMN_EVENTS_TITLE + " text not null, "+COLUMN_EVENTS_START_TIME+" real not null, "+ 
      COLUMN_EVENTS_END_TIME+ " real, "+COLUMN_EVENTS_TYPE+" integer not null, "+COLUMN_EVENTS_START_LONG+" integer, "+ 
      COLUMN_EVENTS_START_LAT+" integer);"; 

と呼ばれるには、そして、私の挿入がSQLiteDatabaseクラスは、あなたのDATABASE_CREATE文字列に1つのCREATE文を可能にするためです

public long createEvent(String title, long start, long end, int type, int long_, int lat){ 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put(COLUMN_EVENTS_TITLE, title); 
     initialValues.put(COLUMN_EVENTS_START_TIME, start); 
     initialValues.put(COLUMN_EVENTS_END_TIME, end); 
     initialValues.put(COLUMN_EVENTS_TYPE, type); 
     initialValues.put(COLUMN_EVENTS_START_LAT, lat); 
     initialValues.put(COLUMN_EVENTS_START_LONG, long_); 

     return mDb.insert(TABLE_EVENTS, null, initialValues); 
    } 
+0

"エラー"について話している場合は、スローされた例外のlogcatを投稿する必要があります。 – Egor

答えて

2

です。あなたのイベント表が作成されていませんでしたので、

public void onCreate(SQLiteDatabase db) 
{ 
    db.execSQL(DATABASE_CREATE_CONTACTS_TABLE); 
    db.execSQL(DATABASE_CREATE_EVENTS_TABLE); 
} 

あなたがエラーを取得しているが:あなたは複数のテーブルを作成したい場合は、トリックは、その後、複数の作成文字列を作成し、あなたのonCreate方法で一つずつそれらを呼び出すことです。

1

同じ問題が発生しました。少年はそれが頭痛だった。

新しいテーブルごとに1つの文字列を作成し、それぞれにdb.execSQL(query)を呼び出します。それを使用するといくつかの問題があるようです。デリミタ。

2

SQLiteはいつでも1つのSQLコマンドしか許可しません。 create文を個々の文字列に分割し、それらを1つずつ実行する必要があります。

private static final String CREATE_TABLE_1 = 
"create table "+ TABLE_CONTACTS + "(" + COLUMN_CONTACTS_LOOKUP 
      + " text primary key, " + COLUMN_CONTACTS_ADDED 
      + " real not null);"; 


private static final String CREATE_TABLE_2 = 
"create table "+ TABLE_EVENTS +"("+ COLUMN_ID +" integer primary key autoincrement, "+ 
COLUMN_EVENTS_TITLE + " text not null, "+COLUMN_EVENTS_START_TIME+" real not null, "+ 
COLUMN_EVENTS_END_TIME+ " real, "+COLUMN_EVENTS_TYPE+" integer not null, "+COLUMN_EVENTS_START_LONG+" integer, "+ 
COLUMN_EVENTS_START_LAT+" integer);"; 


public void onCreate(SQLiteDatabase db) { 

db.execSQL(CREATE_TABLE_1); 
db.execSQL(CREATE_TABLE_2); 
} 
関連する問題