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