summaryrefslogtreecommitdiffstats
path: root/database/sqlite
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-22 12:33:05 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-22 12:33:05 +0100
commit27c831c4997f045449c65851ca7a09878b02a7ee (patch)
treed5c707db9db08a2af49e751d0cab1c271e3e9acb /database/sqlite
parentdd0c061770b90039e605e68a44327d968981c386 (diff)
downloadeurephia-27c831c4997f045449c65851ca7a09878b02a7ee.tar.gz
eurephia-27c831c4997f045449c65851ca7a09878b02a7ee.tar.xz
eurephia-27c831c4997f045449c65851ca7a09878b02a7ee.zip
sqlite3 - Added saving last_insert_id on INSERT INTO queries
Diffstat (limited to 'database/sqlite')
-rw-r--r--database/sqlite/CMakeLists.txt6
-rw-r--r--database/sqlite/sqlite.c3
-rw-r--r--database/sqlite/sqlite.h1
3 files changed, 9 insertions, 1 deletions
diff --git a/database/sqlite/CMakeLists.txt b/database/sqlite/CMakeLists.txt
index 12042ef..1a7a9b9 100644
--- a/database/sqlite/CMakeLists.txt
+++ b/database/sqlite/CMakeLists.txt
@@ -15,9 +15,13 @@ SET(COMMON
../../common/sha512.c
)
+
INCLUDE(CheckIncludeFile)
-CHECK_INCLUDE_FILE(sqlite3.h HAVE_SQLITE3_H)
INCLUDE(CheckLibraryExists)
+
+ADD_DEFINITIONS(-D_GNU_SOURCE)
+
+CHECK_INCLUDE_FILE(sqlite3.h HAVE_SQLITE3_H)
CHECK_LIBRARY_EXISTS(sqlite3 sqlite3_open "" HAVE_SQLITE3_OPEN)
CHECK_LIBRARY_EXISTS(sqlite3 sqlite3_close "" HAVE_SQLITE3_CLOSE)
CHECK_LIBRARY_EXISTS(sqlite3 sqlite3_exec "" HAVE_SQLITE3_EXEC)
diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c
index 6b0cd72..1e8e265 100644
--- a/database/sqlite/sqlite.c
+++ b/database/sqlite/sqlite.c
@@ -241,6 +241,9 @@ dbresult *sqlite_query(eurephiaCTX *ctx, char *fmt, ... ) {
return NULL;
}
+ if( strcasestr(sql, "INSERT INTO") != NULL) {
+ glob_results->last_insert_id = sqlite3_last_insert_rowid((sqlite3 *) dbc->dbhandle);
+ };
glob_results->srch_tuples = glob_results->tuples;
glob_results->srch_headerrec = glob_results->headerrec;
sqlite3_free(sql); sql = NULL;
diff --git a/database/sqlite/sqlite.h b/database/sqlite/sqlite.h
index 10f8fd4..9b67523 100644
--- a/database/sqlite/sqlite.h
+++ b/database/sqlite/sqlite.h
@@ -59,6 +59,7 @@ typedef struct __sqlite_dbresult {
_sqlite_header *headerrec;
size_t num_tuples;
size_t num_fields;
+ sqlite3_int64 last_insert_id;
// Used for search functions
_sqlite_tuples *srch_tuples;