Advertisement
DrAungWinHtut

sqliteCRUD.cpp

Jun 18th, 2025
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.40 KB | None | 0 0
  1. #include <iostream>
  2. #include "sqlite3.h"
  3. void createTable(sqlite3* DB);
  4. void insertDb(sqlite3* DB, const std::string& name);
  5. void readDb(sqlite3* DB);
  6. void updateDb(sqlite3* DB, int id, const std::string& newName);
  7. void deleteDb(sqlite3* DB, int id);
  8. int main() {
  9.     sqlite3* DB;
  10.     int exit = sqlite3_open("example.db", &DB);
  11.  
  12.     if (exit) {
  13.         std::cerr << "Error opening DB: " << sqlite3_errmsg(DB) << std::endl;
  14.         return -1;
  15.     }
  16.     std::cout << "Opened database successfully!" << std::endl;
  17.  
  18.     //createTable(DB);
  19.     /*insertDb(DB, "Aung Win Htut");
  20.     insertDb(DB, "Ko Ko");
  21.     insertDb(DB, "Aye Aye");*/
  22.     readDb(DB);
  23.     updateDb(DB, 1, "Green Hackers");
  24.     deleteDb(DB, 3);
  25.     readDb(DB);
  26.     sqlite3_close(DB);
  27.    
  28.     return 0;
  29. }
  30.  
  31. void createTable(sqlite3* DB) {
  32.     const char* sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);";
  33.     char* errMsg;
  34.     int exit = sqlite3_exec(DB, sql, nullptr, 0, &errMsg);
  35.     if (exit != SQLITE_OK) {
  36.         std::cerr << "Error creating table: " << errMsg << std::endl;
  37.         sqlite3_free(errMsg);
  38.     }
  39.     else {
  40.         std::cout << "Table created successfully!" << std::endl;
  41.     }
  42. }
  43.  
  44. void insertDb(sqlite3* DB, const std::string& name) {
  45.     const char* sql = "INSERT INTO users (name) VALUES (?);";
  46.     sqlite3_stmt* stmt;
  47.     int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
  48.     if (exit != SQLITE_OK) {
  49.         std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
  50.         return;
  51.     }
  52.     sqlite3_bind_text(stmt, 1, name.c_str(), -1, SQLITE_STATIC);
  53.     exit = sqlite3_step(stmt);
  54.     if (exit != SQLITE_DONE) {
  55.         std::cerr << "Error inserting data: " << sqlite3_errmsg(DB) << std::endl;
  56.     }
  57.     sqlite3_finalize(stmt);
  58. }
  59.  
  60. void readDb(sqlite3* DB) {
  61.     const char* sql = "SELECT * FROM users;";
  62.     sqlite3_stmt* stmt;
  63.     int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
  64.     if (exit != SQLITE_OK) {
  65.         std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
  66.         return;
  67.     }
  68.     while ((exit = sqlite3_step(stmt)) == SQLITE_ROW) {
  69.         int id = sqlite3_column_int(stmt, 0);
  70.         const unsigned char* name = sqlite3_column_text(stmt, 1);
  71.         std::cout << "ID: " << id << ", Name: " << name << std::endl;
  72.     }
  73.     if (exit != SQLITE_DONE) {
  74.         std::cerr << "Error reading data: " << sqlite3_errmsg(DB) << std::endl;
  75.     }
  76.     sqlite3_finalize(stmt);
  77. }
  78.  
  79. void updateDb(sqlite3* DB, int id, const std::string& newName) {
  80.     const char* sql = "UPDATE users SET name = ? WHERE id = ?;";
  81.     sqlite3_stmt* stmt;
  82.     int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
  83.     if (exit != SQLITE_OK) {
  84.         std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
  85.         return;
  86.     }
  87.     sqlite3_bind_text(stmt, 1, newName.c_str(), -1, SQLITE_STATIC);
  88.     sqlite3_bind_int(stmt, 2, id);
  89.     exit = sqlite3_step(stmt);
  90.     if (exit != SQLITE_DONE) {
  91.         std::cerr << "Error updating data: " << sqlite3_errmsg(DB) << std::endl;
  92.     }
  93.     sqlite3_finalize(stmt);
  94. }
  95.  
  96. void deleteDb(sqlite3* DB, int id) {
  97.     const char* sql = "DELETE FROM users WHERE id = ?;";
  98.     sqlite3_stmt* stmt;
  99.     int exit = sqlite3_prepare_v2(DB, sql, -1, &stmt, nullptr);
  100.     if (exit != SQLITE_OK) {
  101.         std::cerr << "Error preparing statement: " << sqlite3_errmsg(DB) << std::endl;
  102.         return;
  103.     }
  104.     sqlite3_bind_int(stmt, 1, id);
  105.     exit = sqlite3_step(stmt);
  106.     if (exit != SQLITE_DONE) {
  107.         std::cerr << "Error deleting data: " << sqlite3_errmsg(DB) << std::endl;
  108.     }
  109.     sqlite3_finalize(stmt);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement