IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

probleme creation base de donnée


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut probleme creation base de donnée
    Bonjour,

    J'ai créer une base de données que j'ai mis dans le repertoire Asset de l'application.

    Lors du premier lancement de l'application, cela devrait copier la base de donnée dans /data/data/NOM_PACKAGE/databases/

    ma base de données s'appelle produits.db

    MAIS cela ne copie pas je pense car il m'indique cette erreur:

    08-13 22:02:09.923: ERROR/Database(29474): sqlite3_open_v2("/data/data/com.monapplication/databases/produits.db", &handle, 1, NULL) failed


    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    public class DBAdapter {
     
    	DatabaseHelper DBHelper;
    	Context context;
    	SQLiteDatabase db;
    	private static String DB_PATH = "/data/data/com.monapplication/databases/";
     
    	private static String DB_NAME = "produits.db";
     
    	private String myPath = DB_PATH + DB_NAME;
    	private final String MY_DATABASE_TABLE = "matable";
     
    	public String columnName;
     
    	public DBAdapter(Context context) {
    		this.context = context;
    		DBHelper = new DatabaseHelper(context);
     
    	}
     
    	public class DatabaseHelper extends SQLiteOpenHelper {
     
    		Context context;
     
    		public DatabaseHelper(Context context) {
    			/** nom de la base et n° de la version */
    			super(context, DB_NAME, null, 2);
    			this.context = context;
     
    		}
     
    		@Override
    		public void onCreate(SQLiteDatabase db) {
     
    		}
     
    		@Override
    		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
     
    		}
     
    	}
     
    	public DBAdapter open() {
    		boolean dbExist = checkDataBase();
     
    		if (dbExist) {
     
    		} else {
     
    			db = DBHelper.getReadableDatabase();
    			try {
    				copyDataBase();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			// db = DBHelper.getWritableDatabase();
    		}
    		return this;
    	}
     
    	private boolean checkDataBase() {
     
    		SQLiteDatabase checkDB = null;
     
    		try {
     
    			checkDB = SQLiteDatabase.openDatabase(myPath, null,
    					SQLiteDatabase.OPEN_READONLY);
     
    		} catch (SQLiteException e) {
    			// database does't exist yet.
    		}
     
    		if (checkDB != null) {
     
    			checkDB.close();
    		}
     
    		return checkDB != null ? true : false;
    	}
     
    	public void close() {
    		db.close();
    	}
     
     
     
    	private void copyDataBase() throws IOException {
     
    		// Open your local db as the input stream
    		InputStream myInput = context.getAssets().open(DB_NAME);
     
    		// Path to the just created empty db
    		String outFileName = DB_PATH + DB_NAME;
     
    		// Open the empty db as the output stream
    		OutputStream myOutput = new FileOutputStream(outFileName);
     
    		// transfer bytes from the inputfile to the outputfile
    		byte[] buffer = new byte[1024];
    		int length;
    		while ((length = myInput.read(buffer)) > 0) {
    			myOutput.write(buffer, 0, length);
    		}
     
    		// Close the streams
    		myOutput.flush();
    		myOutput.close();
    		myInput.close();
     
    	}
     
    }

    code de mon activity:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            DBAdapter db = new DBAdapter(this);
            db.open();
     
     
    }
    Merci.

  2. #2
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 25
    Par défaut BDD
    Salut,
    Moi de mon coté , j'ai reussi à faire quelques BDD sans leurs indiquer de nom de répertoire. As tu essayé de créer ta BDD de façon native.

    ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static String DB_PATH = "/data/data/com.monapplication/databases/";
    Le mien inspiré du tuto NOTEPAD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public class ElevesDbAdapter {
     
        public static final String KEY_NOTE = "note";
        public static final String KEY_PRENOM = "prenom";
        public static final String KEY_NOM = "nom";
        public static final String KEY_ROWID = "_id";
        private static final String TAG = "ElevesDbAdapter";
        private DatabaseHelper mDbHelper;
        private SQLiteDatabase mDb;
     
        /**
         * Database creation sql statement
         */
        private static final String DATABASE_CREATE =
            "create table classe (_id integer primary key autoincrement, "
            + "note integer, prenom text not null, nom integer);";
     
        private static final String DATABASE_NAME = "data";
        private static final String DATABASE_TABLE = "classe";
        private static final int DATABASE_VERSION = 5;
     
        private final Context mCtx;
     
        private static class DatabaseHelper extends SQLiteOpenHelper {
     
            DatabaseHelper(Context context) {
                super(context, DATABASE_NAME, null, DATABASE_VERSION);
            }
     
            @Override
        public void onCreate(SQLiteDatabase db) {
            	 db.execSQL(DATABASE_CREATE);
            	         	 }
     
            @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                        + newVersion + ", which will destroy all old data");
                db.execSQL("DROP TABLE IF EXISTS courses");
                onCreate(db);
            }
        }

    comme tu le vois, je n'indique pas chemin, la BDD se place naturellement dans le fichier DATA.

Discussions similaires

  1. [2008] Creation base de donnée probleme sql server 2008
    Par karimot dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/12/2013, 13h48
  2. [MySQL] Creation base de données "at run time"
    Par sozie9372 dans le forum JDBC
    Réponses: 1
    Dernier message: 28/06/2006, 13h29
  3. Probleme avec base de données et variable !
    Par Sunseeker69 dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/04/2006, 16h39
  4. [VB.NET] Programmer la creation base de données
    Par papy27 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/09/2004, 13h00
  5. probleme construction base de donnes MySql...Help
    Par chakan dans le forum Requêtes
    Réponses: 7
    Dernier message: 21/07/2004, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo