2012-05-01 50 views
3

我有一個代碼可以創建一個包含2個表的數據庫。數據庫多維數據集和ICS

private static final String tablecommandes="CREATE TABLE Commandes (no INTEGER NOT NULL PRIMARY KEY,equipe TEXT NULL,nom TEXT NULL,adresse TEXT NULL,ville TEXT NULL,tel TEXT NULL,frequence INTEGER NULL,datelastserv TIMESTAMP NULL,priorite INTEGER NULL);"; 
private static final String tabletravaux="CREATE TABLE Travaux (notrav INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, travid TEXT NULL, notravlogiciel INTEGER NULL, nocom INTEGER NULL, debut TIMESTAMP NULL,fin TIMESTAMP NULL,temps INTEGER NULL);"; 
private static final String DATABASE_CREATE = tablecommandes+" "+tabletravaux; 

    @Override 
public void onCreate(SQLiteDatabase database) { 
    database.execSQL(DATABASE_CREATE); 
} 

當我試圖做兩個表的查詢,我得到「沒有這樣的表準備」

public Cursor fc() throws SQLException { 
Cursor mCursor = database.query(true, "Commandes , Travaux", new String[] { 
      Fieldno,FieldNom,FieldAdresse,Fieldville,Fieldtel,Fieldfreq,Fieldlastserv,Fieldequipe}, 
      "Commande.NoCommande=Travaux.NoCommande",null, null, null, null,null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 
    return mCursor; 

} 

能正常工作在我的平板電腦HC但不是我的ICS之一。 有什麼想法?

回答

3

從SQLiteDatabase.execSQL()文檔:

執行一個SQL語句...

所以,即使你的代碼工作在某些設備上,試着將你的build語句爲兩個命令:

@Override 
public void onCreate(SQLiteDatabase database) { 
    database.execSQL(tablecommandes); 
    database.execSQL(tabletravaux); 
} 
+0

太棒了!它非常簡單。非常感謝你。 (我想知道爲什麼它可以與舊版本的android一起使用)。 –