Justin,

You might find this article of interest. This is a technique to pre-
populate the database and bundle into the assets directory of your
application.

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Al.

On Mar 5, 7:49 am, Justin Allen Jaynes <[email protected]> wrote:
> I'm building a dictionary application with 135,000 word entries (words
> only).  My raw file must have been too large (1.5 meg), because I got
> this error:
>
> D/asset (909): Data exceeds UNCOMPRESS_DATA_MAX (1424000 vs 1048576)
>
> I've searched for this error with very few relevant hits.  It seemed to
> mean I could not open an uncompressed file over a meg.  So I then split
> the file into two smaller files and ran my code on both of them.  It
> worked out fine.  My total application size is 3 meg installed.
>
> My code is:
> public void onCreate(SQLiteDatabase database) {
>     database.execSQL("CREATE TABLE " + DATABASE_TABLE + " (wordid
> INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, word VARCHAR);");
>
>     Scanner fileScanner = new
> Scanner(myContext.getResources().openRawResource(R.raw.wordlist));
>     while ( fileScanner.hasNextLine() ) {
>         String wordFromFile = fileScanner.nextLine();
>          database.execSQL("INSERT INTO words (word) VALUES ('" +
> wordFromFile + "');");
>     }
>     fileScanner = new
> Scanner(myContext.getResources().openRawResource(R.raw.wordlist2));
>     while ( fileScanner.hasNextLine() ) {
>         String wordFromFile = fileScanner.nextLine();
>          database.execSQL("INSERT INTO words (word) VALUES ('" +
> wordFromFile + "');");
>      }
>
> }
>
> However, when the application is first run, it takes several MINUTES to
> initialize the database in this way.  Is there a way (like a copy
> command, as found in, say, postgresql, or a restore of a database file)
> to copy data from a raw file, and can such a method be accessed from the
> SDK so that standard first-run procedures can correctly set up the
> database?  I have been unable to locate such a luxury.  I am seeking to
> speed up this data populating process.
>
> First question: how can I speed up my database population?
>
> Second question: is there a way to read a raw resource file larger than
> 1 megabyte (aside from making it into two smaller files)?  If not, why?
>
> Justin
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to