2011-07-21 12 views
2

私はデータベースに3つのテーブルを持っています。私はsqliteでdbを作成することに関して多くのサンプルを試してみると、それらのほとんどが1つのテーブルだけであることがわかります....androidのsqliteで複数のテーブルを作成するには?

私はdb.execSQLそれはエラー..

こんにちは、複数のテーブルを作成するための良い戦略?私は各テーブルのための多くのクラスの表現を作成する必要がありますSQLiteOpenHelperを拡張する???ここ

Thxを

は私のクラスの一部であるSQLiteOpenHelper

public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    try{ 
     db.execSQL(CREATE_TABLE_1); 
     db.execSQL(CREATE_TABLE_2); 
     db.execSQL(CREATE_TABLE_3); 
    }catch(Exception e){ 
     Log.e("dbAdapter", e.getMessage().toString()); 
    } 

} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_1); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_2); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_3); 
    onCreate(db); 
} 

を拡張することがtable2のようだ、と私は表2にデータを挿入するとき、私はエラーを取得cuzを を作成しませんTABLE3 - 見つかりませこうしたtable2のを!!!ここ

私の作成したテーブルの列:

//create script patient 
public static String CREATE_TABLE_1= "create table " + 
TABLE_USER + " (" + 
USER_ID + " integer primary key autoincrement, " + 
USER_NAME + " text not null, " + 
DEVICE_KEY + " text not null );" ; 

public static String CREATE_TABLE_2= "create table " + 
TABLE_GPS_SETTING + " (" + 
SETTIN + " integer primary key autoincrement, " + 
REFRESVAL + " long not null, " + 
ODE + " varchar(20), " + 
_TYPE + " varchar(20));" ; 

public static String CREATE_TABLE_3= "create table " + 
TABLE_W + " (" + 
GPD + " integer primary key autoincrement, " + 
LITUDE + " double, " + 
LITUDE + " double, " + 
ATUDE + "integer,"+ 
M + "integer,"+ 
DTION + "integer,"+ 
DANCE + "integer,"+ 
LDD + "integer,"+ 
SESID + "double,"+ 
ACCCY + "double,"+ 
TMP + "long,"+ 
TATE + "TEXT,"+ 
D_ID + "TEXT);" ; 

任意のアイデア?

+0

どのようなエラーが発生しますか?あなたのSQL文はどのように見えますか?あなたの質問にこれを提供してください。私たちはこれらのことを推測することはできません。 –

+0

それは本当にアプリケーションcuzのエラーではありません私はsqliteで私のdbのテーブルを作成する必要がありますが、それは最初のテーブルtable1を作成しますnテーブル2 n 3なぜですか? thx – sayvortana

+0

あなたが表示されますか? *良い*質問を提供し、良い答えを提供する方が簡単になります;) –

答えて

4

このようにいくつでもテーブルを作成できます。

db.execSQL(TABLE1); 
db.execSQL(TABLE2); 

TABLE1、テーブル作成コマンドを含む文字列です

問題は、アプリケーションdatabase.Uninstallを作成した後、テーブルを作成し、データベース内のテーブルを作成するSQL文を実行しようとしています。

+0

私はちょうど私が編集したことを質問することができます – sayvortana

+0

すべての3つのステートメントを表示する(CREATE_TABLE_1) – Rasel

+0

ちょっと編集した質問をチェックしてください – sayvortana

4

no such thing as a varchar in SQLiteと思われます。 textを使用してください。

+0

thx、oh iそのようなばかだよ – sayvortana

+0

@sayvortana - それは時々人生です:) ...正しい答えをマークすることを忘れないでください! –

関連する問題