2010-10-08 5 views
0

Je souhaite obtenir un code de fournisseur de contenu dans lequel une base de données est créée. J'utilise l'outil qui se trouve ici tools/sqllite3.exe pour vérifier si la base de données est créée.Fournisseur de contenu Android

S'il vous plaît laissez-moi savoir la procédure étape par étape pour cette chose ...

Merci, -D

Répondre

3

Vous ne cageot pas la base de données avec le ContentProvider, mais avec la classe SQLiteOpenHelper. Au moins, c'est la meilleure façon de le faire

class MyDatabase extends SQLiteOpenHelper { 
    public MyDatabase(Context context, dbName, null, version){ 
     super(context, dbName, null, version); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     String createItemsTable = "create table mytable ("+ 
      "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      "_title TEXT NOT NULL, " + 
      "_subtitle TEXT NULL " + 
     ");"; 

     // Begin Transaction 
     db.beginTransaction(); 
     try{ 
      // Create Items table 
      db.execSQL(createItemsTable); 

      // Transaction was successful 
      db.setTransactionSuccessful(); 
     } catch(SQLException ex){ 
      Log.e(this.getClass().getName(), ex.getMessage(), ex); 
     } finally { 
      // End transaction 
      db.endTransaction(); 
     } 
    } 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     String dropItemsTable = "DROP TABLE IF EXISTS mytable"; 

     // Begin transaction 
     db.beginTransaction(); 

     try { 
      if(oldVersion<2){ 
       // Do your update/alter code here 
      } 

      db.setTransactionSuccessful(); 
     } catch(Exception ex){ 
      Log.e(this.getClass().getName(), ex.getMessage(), ex); 
     } finally { 
      // Ends transaction 
      // If there was an error, the database won't be altered 
      db.endTransaction(); 
     } 
    } 
} 

les instanciez simplement votre aide avec

MyDatabase myDb = new MyDatabase(getContext(),"databasename.db", null, 1); 

L'assistant va alors créer la base de données, si elle n'existe pas, le mettre à jour si une version plus ancienne existe ou simplement l'ouvrir si elle existe et la version correspond

+0

Merci ... cela a fonctionné! –

1

J'ai utilisé ce tutoriel

http://www.devx.com/wireless/Article/41133/1763/page/2

J'ai maintenant un bon fournisseur de contenu qui me permet d'interroger facilement la table et qui est beaucoup plus flexible que les autres bases de données.

+0

Cela fonctionne également, mais beaucoup de description ... –

+0

La seule chose à propos du tutoriel que j'ai posté que je n'ai pas aimé ou avoir à faire était d'utiliser l'URI de contenu complet puisque je l'utilisais dans la même application. Je viens d'utiliser BooksProvider.TITLE ou BooksProvider._ID et cela rend la vie beaucoup plus simple. Mais selon le tutoriel pour l'utiliser dans des paquets externes, vous devez utiliser quelque chose comme "content: //net.learn2develop.provider.Books/books". – Opy

Questions connexes