chpil Posté(e) 21 avril 2011 Share Posté(e) 21 avril 2011 Par contre là, avec le premier compileStatement en commentaire, tu arrives bien à insérer dans la deuxième table (msg01), c'est ça ?? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
moritan Posté(e) 21 avril 2011 Share Posté(e) 21 avril 2011 J'ai repris rapidement ton code et chez moi ça marche par d'erreur de compile ni d’exception. J'ai tout mis dans une seul classe (database et helper ) : package fr.debug; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; public class GestionBDDMsgPredef extends SQLiteOpenHelper { private static final String DATABASE_NAME = "msgpredef.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME_MSG_PREDEF = "msg01"; private static final String TABLE_NAME = "table1"; public SQLiteDatabase db; private SQLiteStatement insertStmt; private SQLiteStatement insertStmtmsgpredef; private static final String INSERT = "insert into " + TABLE_NAME + " (name) values (?)"; private static final String INSERTMSGPREDEF = "insert into " + TABLE_NAME_MSG_PREDEF + " (msg) values (?)"; public GestionBDDMsgPredef(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public long insert(String name) { this.insertStmt.bindString(1, name); return this.insertStmt.executeInsert(); } public long insert_msg_predef(String msg) { this.insertStmtmsgpredef.bindString(1, msg); return this.insertStmtmsgpredef.executeInsert(); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_NAME + " (_id INTEGER PRIMARY KEY, name TEXT)"); db.execSQL("CREATE TABLE " + TABLE_NAME_MSG_PREDEF + " (_id INTEGER PRIMARY KEY, msg TEXT)"); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { // TODO Auto-generated method stub } public void openDatabase() { db = this.getWritableDatabase(); this.db = this.getWritableDatabase(); this.insertStmt = this.db.compileStatement(INSERT); this.insertStmtmsgpredef = this.db.compileStatement(INSERTMSGPREDEF); } public void closeDatabase() { db.close(); } } le hello world qui fait les 2 insert package fr.debug; import android.app.Activity; import android.os.Bundle; public class HelloDebug extends Activity { GestionBDDMsgPredef gestionBDDMsgPredef; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gestionBDDMsgPredef = new GestionBDDMsgPredef(this); gestionBDDMsgPredef.openDatabase(); gestionBDDMsgPredef.insert("un nom"); gestionBDDMsgPredef.insert_msg_predef("un message"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); gestionBDDMsgPredef.closeDatabase(); } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
derf42 Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 tel quel je rempli la table "msg01" et le deuxieme statement est pour la table "table1". Donc oui c'est ça. En gros séparément les deux fonctionnent mais ensemble ça plante... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
derf42 Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 Je crois avoir un début de réponse a mon problème, j'ouvre la base de deux endrois différents mais a deux moments différents pour y faire des insert... C'est peut etre ça.. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.