Pass DB name to sqlite3_drv

If DB name not passed 'store.db' will be opened.
This commit is contained in:
sergey-miryanov
2010-01-20 10:47:04 +05:00
parent 345746e9d7
commit 2dd29008ce
2 changed files with 15 additions and 6 deletions

View File

@@ -31,17 +31,26 @@ DRIVER_INIT(basic_driver) {
// Driver Start
static ErlDrvData start(ErlDrvPort port, char* cmd) {
sqlite3_drv_t* retval = (sqlite3_drv_t*) driver_alloc(sizeof(sqlite3_drv_t));
struct sqlite3 *db;
int status;
struct sqlite3 *db = 0;
int status = 0;
const char *db_name = strstr (cmd, " ");
if (!db_name) {
fprintf (stderr, "DB name should be passed at command line (cmd: %s)\n", cmd);
db_name = DB_PATH;
} else {
++db_name;
}
// Create and open the database
sqlite3_open(DB_PATH, &db);
sqlite3_open(db_name, &db);
status = sqlite3_errcode(db);
if(status != SQLITE_OK) {
fprintf(stderr, "Unabled to open file: %s because %s\n\n", DB_PATH, sqlite3_errmsg(db));
} else {
fprintf(stderr, "Opened file %s\n", db_name);
}
fprintf(stderr, "Opened file %s\n", DB_PATH);
// Set the state for the driver
retval->port = port;