Alistair,

This is precisely the approach I was looking for.  Thank you--most 
invaluable to me.

Justin

Alistair. wrote:
> 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 <jus...@ragblue.com> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to