views:

37

answers:

3

Hello, I would like to know if it is possible to create the file of a database by programming? Actually I need to create a database if it does not exist.

A: 

Are you sure that you need to create the database file directly? Maybe you should check out the Core Data Framework.

Nithesh Chandra
+1  A: 

I'll assume you have your own valid reasons for using sqlite3 directly rather than Core Data. There are certainly cases where it's appropriate.

The sqlite_3_open() function will create the database if it doesn't already exist. The sqlite3_open_v2() function will create the database if you pass SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE in the flags parameter. See the documentation for more details.

Of course on iPhone you'll need to make sure you're creating the database in a read-write directory such as the app's Documents directory, as opposed to the Resources directory, which is read-only.

In practice I've never tried building a database from the ground up on the iPhone. I always found it simpler to just include an empty DB file with the schema pre-built as an application resource, and then copy the file to the Documents directory the first time the app is run.

cduhn
A: 

Thanks for your answers, I have never used Core Data so I will have a look on this.

For the moment I also copy a DB file from the Resource directory to the Documents but I would like to create a static library which can be used by many persons. So I would give a minimum of files to add to their project. That's the reason.

Mike