these solutions will not work for me.

i have a 4.5mb database, which i do not want to duplicate by copying
it out of the apk and into a directory.

copying it from the web could potentially be very slow as well.

i can't believe that there is not a better solution to this extremely
common situation.  many, many apps will need to come with a pre-
populated database.

does anybody have anything else?  google guys?

On Nov 16, 9:37 am, G <[EMAIL PROTECTED]> wrote:
> Do you think you could include some sample code for how to execute an
> sql script thats been included as raw?
>
> On Nov 15, 7:59 pm, "Dan B." <[EMAIL PROTECTED]> wrote:
>
> > I think your best 2 options are as the previous poster stated.
>
> > 1) package the db file as a raw resource, then just use a file stream
> > to read it from the resources and write it out to the location you
> > plan to access it.
> > 2) generate a .sql file and package that as a raw resource, then just
> > read and execute the .sql file to build the database on the fly at
> > first run
>
> > option 2 is probably the better.
>
> > another option would be to host the db file from an http location and
> > just grab it and copy it to the location you plan to use it, this will
> > make the APK file smaller, but requires you to have a stable web
> > server to store and host the db file
>
> > On Nov 15, 4:41 pm, Stu <[EMAIL PROTECTED]> wrote:
>
> > > Hi Mark,
>
> > > thanks for your help. I guess I'll just have a play around with a
> > > couple of those suggestions and see which one works for me. :)
>
> > > Regards,
> > > Stuart.
>
> > > On Nov 15, 9:57 pm, Mark Murphy <[EMAIL PROTECTED]> wrote:
>
> > > > Stu wrote:
> > > > > I'm unable to find how I can ship my database with my application.
>
> > > > > I don't really want to populate the database at the first run, it just
> > > > > seems a bit pointless when I could prevent this time consuming
> > > > > activity by including a pre-populated db.
>
> > > > AFAIK, applications are not unpacked from the APK when installed, and
> > > > SQLite has no notion of working with a database file given just an
> > > > InputStream, which is all you can get for things packed in your APK.
>
> > > > I am only aware of three options:
>
> > > > 1. Bundle a database as either an asset/ or a res/raw/, then use
> > > > appropriate methods to get an InputStream on the database, and copy it
> > > > somewhere where you can read/write to. I'm uncertain as to whether this
> > > > approach is a good idea.
>
> > > > 2. Use the sqlite3 console utility (or an equivalent tool) to dump the
> > > > database a set of SQL statements required to rebuild it. Bundle that
> > > > file with your application (e.g., in res/raw/) and execute that script
> > > > on first run. This may feel "pointless", but done properly, you can
> > > > integrate all this into your build process, so you don't, as a
> > > > developer, have to deal with anything -- you just edit your master
> > > > database copy on your development PC.
>
> > > > 3. Use the "classic" approach of just populating the tables yourself in
> > > > Java code as part of creating the database.
>
> > > > If the table is bigger than a few rows, I'd probably go with #2. But,
> > > > that's just me.
>
> > > > --
> > > > Mark Murphy (a Commons Guy)http://commonsware.com
>
> > > > Android Training on the Ranch! -- Mar 16-20, 
> > > > 2009http://www.bignerdranch.com/schedule.shtml-Hidequoted text -
>
> > > - Show quoted text -

--~--~---------~--~----~------------~-------~--~----~
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
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to