#include <sqlite3.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
/* otwarcie/stworzenie bazy danych */
struct sqlite3 *db;
sqlite3_open("database.db", &db);
/* wykonanie gotowego zapytania */
const char *sql = "CREATE TABLE pracownicy("\
"id INTEGER PRIMARY KEY AUTOINCREMENT, "\
"imie VARCHAR(255), "\
"nazwisko VARCHAR(255));";
struct sqlite3_stmt *stmt;
sqlite3_prepare(db, sql, -1, &stmt, NULL);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
/* dodanie danych w pętli, wykorzystanie zapytań przygotowanych */
const char *data[2][2] = { { "Jan", "Nowak" }, { "Adam", "Kowalski" } };
sql = "INSERT INTO pracownicy(imie, nazwisko) VALUES(?, ?);";
sqlite3_prepare(db, sql, -1, &stmt, NULL);
int i;
for (i = 0; i < 2; i++) {
sqlite3_bind_text(stmt, 1, data[i][0], -1, SQLITE_STATIC);
sqlite3_bind_text(stmt, 2, data[i][1], -1, SQLITE_STATIC);
sqlite3_step(stmt);
sqlite3_reset(stmt);
}
sqlite3_finalize(stmt);
/* odczytanie danych z bazy */
sql = "SELECT imie, nazwisko FROM pracownicy ORDER BY nazwisko;";
sqlite3_prepare(db, sql, -1, &stmt, NULL);
while (sqlite3_step(stmt) == SQLITE_ROW) {
printf("Imie: %s\tNazwisko: %s\n",
sqlite3_column_text(stmt, 0),
sqlite3_column_text(stmt, 1));
}
sqlite3_finalize(stmt);
/* zamknięcie połączenia */
sqlite3_close(db);
return 0;
}