From 27c831c4997f045449c65851ca7a09878b02a7ee Mon Sep 17 00:00:00 2001 From: David Sommerseth Date: Mon, 22 Dec 2008 12:33:05 +0100 Subject: sqlite3 - Added saving last_insert_id on INSERT INTO queries --- database/sqlite/CMakeLists.txt | 6 +++++- database/sqlite/sqlite.c | 3 +++ database/sqlite/sqlite.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) (limited to 'database/sqlite') 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; -- cgit