Advertisement
Guest User

Untitled

a guest
Jan 24th, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <sqlite3.h>
  3. #include <vector>
  4.  
  5. void dbInsertPlayer(sqlite3* db, std::string playerName, int id);
  6.  
  7. static int callback(void* data, int rows, char** argv, char** azColName);
  8.  
  9. void dbDeletePlayer(sqlite3* db, int id);
  10.  
  11. int main(int argc, char** argv){
  12. sqlite3* DB;
  13. char* errormsg;
  14. int status = 0;
  15. status = sqlite3_open("players.db", &DB);
  16.  
  17. if (status != SQLITE_OK) {
  18. std::cout << "DB unable to open: " << sqlite3_errmsg(DB) << std::endl;
  19. return (-1);
  20. }
  21. std::cout << "Opened Database Successfully!" << std::endl;
  22.  
  23. std::string createTable = "CREATE TABLE IF NOT EXISTS PLAYERS("
  24. "UserId INT PRIMARY KEY NOT NULL,"
  25. "UserName TEXT NOT NULL,"
  26. "Points INT NOT NULL,"
  27. "GamePlayed INT NOT NULL,"
  28. "GamesWon INT NOT NULL);";
  29.  
  30. int createTableStatus = sqlite3_exec(DB, createTable.c_str(), NULL, 0, &errormsg);
  31.  
  32. if (createTableStatus != SQLITE_OK){
  33. std::cout << "Table could not be created" <<sqlite3_errmsg(DB) << std::endl;
  34. }
  35.  
  36. dbInsertPlayer(DB, "billy", 1);
  37. dbInsertPlayer(DB, "bobby", 2);
  38. std::cout << "After Insert\n";
  39. std::string selectBilly = "SELECT * FROM PLAYERS";
  40. std::string data("callback function");
  41. int selectStatus = sqlite3_exec(DB, selectBilly.c_str(), callback, (void*)data.c_str(), &errormsg);
  42. if (selectStatus != SQLITE_OK){
  43. std::cout << "Select could not be performed: " <<sqlite3_errmsg(DB) << std::endl;
  44. }
  45. dbDeletePlayer(DB, 1);
  46.  
  47. std::cout << "After Delete\n";
  48.  
  49. selectStatus = sqlite3_exec(DB, selectBilly.c_str(), callback, (void*)data.c_str(), &errormsg);
  50. if (selectStatus != SQLITE_OK){
  51. std::cout << "Select could not be performed: " <<sqlite3_errmsg(DB) << std::endl;
  52. }
  53.  
  54. sqlite3_close(DB);
  55. return (0);
  56. }
  57.  
  58. void dbInsertPlayer(sqlite3* db, std::string playerName, int id){
  59. std::string insertStatement = std::string("INSERT INTO PLAYERS VALUES ("+ std::to_string(id) + ", '"+playerName+"', 0, 0, 0);");
  60. char* errormsg;
  61. int insertStatus = sqlite3_exec(db, insertStatement.c_str(), NULL, 0, &errormsg);
  62. if (insertStatus != SQLITE_OK){
  63. std::cout << "DB unable to insert: " << sqlite3_errmsg(db) << std::endl;
  64. }
  65. }
  66.  
  67. static int callback(void* data, int rows, char** argv, char** azColName){
  68. int i;
  69. fprintf(stderr, "%s: ", (const char*)data);
  70. for (i = 0; i < rows; i++) {
  71. printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  72. }
  73. printf("\n");
  74. return 0;
  75. }
  76.  
  77. void dbDeletePlayer(sqlite3* db, int id){
  78. std::string deleteStatement = "DELETE FROM PLAYERS WHERE UserID = " + std::to_string(id) + ";";
  79. char* errorMsg;
  80. int deleteStatus = sqlite3_exec(db, deleteStatement.c_str(), callback, NULL, &errorMsg);
  81. if (deleteStatus != SQLITE_OK){
  82. std::cout << "delete unsucessful: " << errorMsg << std::endl;
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement