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 -~----------~----~----~----~------~----~------~--~---