51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Below is a simple C program that demonstrates how to use the C/C++ interface to SQLite.
 | |
|  * The name of a database is given by the first argument and the second argument is one
 | |
|  * or more SQL statements to execute against the database.
 | |
|  *
 | |
|  * This file is based on the sample code in https://www.sqlite.org/quickstart.html
 | |
|  */
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <sqlite3.h>
 | |
| 
 | |
| static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
 | |
|     int i;
 | |
|     for (i=0; i < argc; i++) {
 | |
|         printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
 | |
|     }
 | |
|     printf("\n");
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| int main(int argc, char **argv) {
 | |
|     sqlite3 *db;
 | |
|     char *db_path, *sql_stmt;
 | |
|     char *zErrMsg = 0;
 | |
|     int rc;
 | |
| 
 | |
|     if (argc != 3) {
 | |
|         fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
 | |
|         return -1;
 | |
|     }
 | |
|     db_path = argv[1];
 | |
|     sql_stmt = argv[2];
 | |
|     rc = sqlite3_open(db_path, &db);
 | |
|     if (rc) {
 | |
|         fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
 | |
|         sqlite3_close(db);
 | |
|         return -1;
 | |
|     }
 | |
|     rc = sqlite3_exec(db, sql_stmt, callback, 0, &zErrMsg);
 | |
|     if (rc != SQLITE_OK) {
 | |
|         fprintf(stderr, "SQL error: %s\n", zErrMsg);
 | |
|         sqlite3_free(zErrMsg);
 | |
|         sqlite3_close(db);
 | |
|         return -1;
 | |
|     }
 | |
|     sqlite3_close(db);
 | |
|     fprintf(stdout, "Execute sql-statement: \"%s\"\non database: %s OK\n",
 | |
|             sql_stmt, db_path);
 | |
|     return 0;
 | |
| }
 |