Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sqlite3.h>
- #include <vector>
- void dbInsertPlayer(sqlite3* db, std::string playerName, int id);
- static int callback(void* data, int rows, char** argv, char** azColName);
- void dbDeletePlayer(sqlite3* db, int id);
- int main(int argc, char** argv){
- sqlite3* DB;
- char* errormsg;
- int status = 0;
- status = sqlite3_open("players.db", &DB);
- if (status != SQLITE_OK) {
- std::cout << "DB unable to open: " << sqlite3_errmsg(DB) << std::endl;
- return (-1);
- }
- std::cout << "Opened Database Successfully!" << std::endl;
- std::string createTable = "CREATE TABLE IF NOT EXISTS PLAYERS("
- "UserId INT PRIMARY KEY NOT NULL,"
- "UserName TEXT NOT NULL,"
- "Points INT NOT NULL,"
- "GamePlayed INT NOT NULL,"
- "GamesWon INT NOT NULL);";
- int createTableStatus = sqlite3_exec(DB, createTable.c_str(), NULL, 0, &errormsg);
- if (createTableStatus != SQLITE_OK){
- std::cout << "Table could not be created" <<sqlite3_errmsg(DB) << std::endl;
- }
- dbInsertPlayer(DB, "billy", 1);
- dbInsertPlayer(DB, "bobby", 2);
- std::cout << "After Insert\n";
- std::string selectBilly = "SELECT * FROM PLAYERS";
- std::string data("callback function");
- int selectStatus = sqlite3_exec(DB, selectBilly.c_str(), callback, (void*)data.c_str(), &errormsg);
- if (selectStatus != SQLITE_OK){
- std::cout << "Select could not be performed: " <<sqlite3_errmsg(DB) << std::endl;
- }
- dbDeletePlayer(DB, 1);
- std::cout << "After Delete\n";
- selectStatus = sqlite3_exec(DB, selectBilly.c_str(), callback, (void*)data.c_str(), &errormsg);
- if (selectStatus != SQLITE_OK){
- std::cout << "Select could not be performed: " <<sqlite3_errmsg(DB) << std::endl;
- }
- sqlite3_close(DB);
- return (0);
- }
- void dbInsertPlayer(sqlite3* db, std::string playerName, int id){
- std::string insertStatement = std::string("INSERT INTO PLAYERS VALUES ("+ std::to_string(id) + ", '"+playerName+"', 0, 0, 0);");
- char* errormsg;
- int insertStatus = sqlite3_exec(db, insertStatement.c_str(), NULL, 0, &errormsg);
- if (insertStatus != SQLITE_OK){
- std::cout << "DB unable to insert: " << sqlite3_errmsg(db) << std::endl;
- }
- }
- static int callback(void* data, int rows, char** argv, char** azColName){
- int i;
- fprintf(stderr, "%s: ", (const char*)data);
- for (i = 0; i < rows; i++) {
- printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
- }
- printf("\n");
- return 0;
- }
- void dbDeletePlayer(sqlite3* db, int id){
- std::string deleteStatement = "DELETE FROM PLAYERS WHERE UserID = " + std::to_string(id) + ";";
- char* errorMsg;
- int deleteStatus = sqlite3_exec(db, deleteStatement.c_str(), callback, NULL, &errorMsg);
- if (deleteStatus != SQLITE_OK){
- std::cout << "delete unsucessful: " << errorMsg << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement