SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLiteAssetHelper के साथ रोबोइलेक्ट्रिक का उपयोग करना

सबसे पहले अपने डेटाबेस को एसेट फोल्डर से अपने ऐप डेटाबेस फोल्डर में कॉपी करें। यहां वह कोड है जो डेटाबेस को कॉपी करेगा

public class DataBaseWrapper extends SQLiteOpenHelper
 {
  private static String TAG = DataBaseWrapper.class.getName();
  private  String DB_PATH; //= "/data/data/com.example.yourproject/databases/";
  private static String DB_NAME = "Database.sqlite";
  private SQLiteDatabase myDataBase = null; 
  private final Context myContext;

  public DataBaseWrapper(Context context) 
  {
     super(context, DB_NAME, null, 1);

      this.myContext = context;
      DB_PATH="/data/data/" + context.getPackageName() + "/" + "databases/";
      Log.v("log_tag", "DBPath: " + DB_PATH);
     //  File f=getDatabasePath(DB_NAME);
  } 

  public void createDataBase() throws IOException{
   boolean dbExist = checkDataBase();
   if(dbExist){
    Log.v("log_tag", "database does exist");
    }else{
     Log.v("log_tag", "database does not exist");
     this.getReadableDatabase();
     try {
      copyDataBase();
        } catch (IOException e) {
      throw new Error("Error copying database");
      }
    }
   }

  private void copyDataBase() throws IOException{
  InputStream myInput = myContext.getAssets().open(DB_NAME);
  String outFileName = DB_PATH + DB_NAME;
  OutputStream myOutput = new FileOutputStream(outFileName);
  byte[] buffer = new byte[1024];
  int length;
   while ((length = myInput.read(buffer))>0){
    myOutput.write(buffer, 0, length);
   }
   myOutput.flush();
   myOutput.close();
   myInput.close();
  }

  private boolean checkDataBase(){

     File dbFile = new File(DB_PATH + DB_NAME); 
     //Log.v("dbFile", dbFile + "   "+ dbFile.exists()); 
     return dbFile.exists(); 

 }

 public boolean openDataBase() throws SQLException
 {
    String mPath = DB_PATH + DB_NAME; 
    //Log.v("mPath", mPath); 
    myDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.CREATE_IF_NECESSARY); 
    //mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS); 
    return myDataBase != null; 

 }


  @Override
  public synchronized void close() 
  {
     if(myDataBase != null)
      myDataBase.close();
     super.close();
  }

 @Override
 public void onCreate(SQLiteDatabase db) 
 {


  }

 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
 {
    Log.v(TAG, "Upgrading database, this will drop database and recreate.");
  }
  }

इस लिंक को भी देखें .. यह रोबोइलेक्ट्रिक में SQLite डेटाबेस का परीक्षण करने के लिए उपयोगी हो सकता है

इन चीजों को आजमाएं:

1. टर्मिनल से अपना डेटाबेस हटाएं

adb shell
cd /data/data/com.example.apploicationname/databases
rm *

और अपने एप्लिकेशन को एमुलेटर पर फिर से इंस्टॉल करें।

  1. एमुलेटर की रैम बढ़ाने की कोशिश करें .. डेटाबेस में मेरे सभी डेटा के बावजूद मुझे वही त्रुटि आ रही थी लेकिन जब मैंने एमुलेटर की रैम को 1024 से बढ़ाकर 2000 कर दिया .. यह काम कर गया।

  2. अपने डेटाबेस को डीडीएमएस से अपने सिस्टम फाइल सिस्टम में कॉपी करें और इसे एसक्लाइट ब्राउज़र के माध्यम से खोलें और जांचें कि टेबल मौजूद है या नहीं। एसक्लाइट ब्राउज़र के लिए लिंक http://sourceforge.net/projects/sqlitebrowser/files/sqlitebrowser/




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रूम परसिस्टेंट लाइब्रेरी का उपयोग करके पैरामीटर के साथ अपडेट करें

  2. SQLite MAX

  3. SQLite को JSON में बदलें

  4. एंड्रॉइड में एसक्लाइट डेटाबेस का उपयोग करके टेबल कैसे बनाएं?

  5. SQLite में एक तिथि से वर्ष घटाएं