1 /********************************************************************/ 2 /* */ 3 /* db_lite.h SQLite interfaces used by Seed7. */ 4 /* Copyright (C) 1989 - 2020 Thomas Mertes */ 5 /* */ 6 /* This file is part of the Seed7 Runtime Library. */ 7 /* */ 8 /* The Seed7 Runtime Library is free software; you can */ 9 /* redistribute it and/or modify it under the terms of the GNU */ 10 /* Lesser General Public License as published by the Free Software */ 11 /* Foundation; either version 2.1 of the License, or (at your */ 12 /* option) any later version. */ 13 /* */ 14 /* The Seed7 Runtime Library is distributed in the hope that it */ 15 /* will be useful, but WITHOUT ANY WARRANTY; without even the */ 16 /* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ 17 /* PURPOSE. See the GNU Lesser General Public License for more */ 18 /* details. */ 19 /* */ 20 /* You should have received a copy of the GNU Lesser General */ 21 /* Public License along with this program; if not, write to the */ 22 /* Free Software Foundation, Inc., 51 Franklin Street, */ 23 /* Fifth Floor, Boston, MA 02110-1301, USA. */ 24 /* */ 25 /* Module: Seed7 Runtime Library */ 26 /* File: seed7/src/db_lite.h */ 27 /* Changes: 2014, 2015, 2019, 2020 Thomas Mertes */ 28 /* Content: SQLite interfaces used by Seed7. */ 29 /* */ 30 /********************************************************************/ 31 32 #if defined(__cplusplus) || defined(c_plusplus) 33 extern "C" { 34 #endif 35 36 typedef void *sqlite3; 37 typedef void *sqlite3_stmt; 38 39 typedef INT64TYPE sqlite3_int64; 40 41 #define SQLITE_INTEGER 1 42 #define SQLITE_FLOAT 2 43 #define SQLITE_TEXT 3 44 #define SQLITE_BLOB 4 45 #define SQLITE_NULL 5 46 47 #define SQLITE_OK 0 48 #define SQLITE_ROW 100 49 #define SQLITE_DONE 101 50 51 #ifndef CDECL 52 #if defined(_WIN32) && HAS_CDECL 53 #define CDECL __cdecl 54 #else 55 #define CDECL 56 #endif 57 #endif 58 59 int CDECL sqlite3_bind_blob (sqlite3_stmt *pStmt, 60 int index, 61 const void *value, 62 int n, 63 void (*destruct) (void*)); 64 int CDECL sqlite3_bind_double (sqlite3_stmt *pStmt, int index, double value); 65 int CDECL sqlite3_bind_int (sqlite3_stmt *pStmt, int index, int value); 66 int CDECL sqlite3_bind_int64 (sqlite3_stmt *pStmt, int index, sqlite3_int64 value); 67 int CDECL sqlite3_bind_null (sqlite3_stmt *pStmt, int index); 68 int CDECL sqlite3_bind_parameter_count(sqlite3_stmt *pStmt); 69 int CDECL sqlite3_bind_text (sqlite3_stmt *pStmt, 70 int index, 71 const char *value, 72 int n, 73 void (*destruct) (void*)); 74 int CDECL sqlite3_close (sqlite3 *db); 75 const void *CDECL sqlite3_column_blob (sqlite3_stmt *pStmt, int iCol); 76 int CDECL sqlite3_column_bytes (sqlite3_stmt *pStmt, int iCol); 77 int CDECL sqlite3_column_count (sqlite3_stmt *pStmt); 78 double CDECL sqlite3_column_double (sqlite3_stmt *pStmt, int iCol); 79 int CDECL sqlite3_column_int (sqlite3_stmt *pStmt, int iCol); 80 sqlite3_int64 CDECL sqlite3_column_int64 (sqlite3_stmt *pStmt, int iCol); 81 const char *CDECL sqlite3_column_name (sqlite3_stmt *pStmt, int N); 82 const unsigned char *CDECL sqlite3_column_text (sqlite3_stmt *pStmt, int iCol); 83 int CDECL sqlite3_column_type (sqlite3_stmt *pStmt, int iCol); 84 sqlite3 *CDECL sqlite3_db_handle (sqlite3_stmt *pStmt); 85 int CDECL sqlite3_errcode (sqlite3 *db); 86 const char *CDECL sqlite3_errmsg (sqlite3 *db); 87 int CDECL sqlite3_exec (sqlite3 *db, 88 const char *sql, 89 int (*callback) (void*, int, char**, char**), 90 void *arg1OfCallback, 91 char **errMsg); 92 int CDECL sqlite3_finalize (sqlite3_stmt *pStmt); 93 int CDECL sqlite3_get_autocommit (sqlite3 *db); 94 int CDECL sqlite3_open (const char *filename, sqlite3 **ppDb); 95 int CDECL sqlite3_prepare (sqlite3 *db, 96 const char *sql, 97 int nByte, 98 sqlite3_stmt **ppStmt, 99 const char **pzTail); 100 int CDECL sqlite3_reset (sqlite3_stmt *pStmt); 101 int CDECL sqlite3_step (sqlite3_stmt *pStmt); 102 103 #if defined(__cplusplus) || defined(c_plusplus) 104 } 105 #endif 106