create entries
header i sourceunknown
c_cpp
2 years ago
3.3 kB
6
Indexable
createEntries.cpp/
#include <stdio.h>
#include <iostream>
#include <sqlite3.h>
#include "../include/createEntries.h"
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
for (int i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int createEntry(const int& id, const std::string& password, const std::string& name,
const std::string& lastName, const std::string& address, const double& balance,const std::string& age) {
sqlite3* db;
const char* tableSQLite =
"CREATE TABLE IF NOT EXISTS STANDARD_ACCOUNT ("
" ID TEXT NOT NULL, "
" PASSWORD TEXT NOT NULL, "
" NAME TEXT NOT NULL, "
" LAST_NAME TEXT NOT NULL, "
" ADDRESS TEXT NOT NULL, "
" BALANCE NUMERIC NOT NULL, "
" AGE TEXT NOT NULL, "
");";
const char* insertSQL =
"INSERT INTO STANDARD_ACCOUNT (ID, PASSWORD, NAME, LAST_NAME, ADDRESS, BALANCE, AGE) ";
char* zErrMsg = 0;
int rc;
rc = sqlite3_open(DATABASE_PATH, &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return 1;
}
// Execute table creation statement
rc = sqlite3_exec(db, tableSQLite, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
sqlite3_close(db);
return 1;
}
// Execute insert statement
rc = sqlite3_exec(db, insertSQL, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
sqlite3_close(db);
return 1;
}
const char* insertSQL =
"INSERT INTO STANDARD_ACCOUNT (ID, PASSWORD, NAME, LAST_NAME, ADDRESS, BALANCE, AGE) "
"VALUES (?, ?, ?, ?, ?, ?, ?);";
sqlite3_stmt* stmt;
rc = sqlite3_prepare_v2(db, insertSQL, -1, &stmt, 0);
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to prepare statement: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
sqlite3_bind_int(stmt, 1, id);
sqlite3_bind_text(stmt, 2, password.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(stmt, 3, name.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(stmt, 4, lastName.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_double(stmt, 5, address.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_int(stmt, 6, balance);
sqlite3_bind_double(stmt, 7, age);
// Execute the statement
rc = sqlite3_step(stmt);
if (rc != SQLITE_DONE) {
fprintf(stderr, "Execution failed: %s\n", sqlite3_errmsg(db));
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
createEntries.h/
#pragma once
#include <stdio.h>
#include <iostream>
#include <sqlite3.h>
#define DATABASE_PATH "../Bankomat/resources/USERS_DATABASE.db" // chujowy pomysl z absolutna sciezka, ale dziala
int createEntry(const int&, const std::string&, const std::string&,
const std::string&, const double&, const int&, const double&,
const std::string&, const std::string&); <--- do poprawy ten header na koncu
Editor is loading...
Leave a Comment