Basic Insert, updated and selected added to XmrAccount

pull/1/head
moneroexamples 8 years ago
parent eebae836f1
commit baa1955076

@ -20,18 +20,26 @@ main()
//xmr_accounts.create_account("41vEA7Ye8Bpeda6g59v5t46koWrVn2PNgEKgzquJjmiKCFTsh9gajr8J3pad49rqu581TAtFGCH9CYTCkYrCpuWUG9GkgeB"); //xmr_accounts.create_account("41vEA7Ye8Bpeda6g59v5t46koWrVn2PNgEKgzquJjmiKCFTsh9gajr8J3pad49rqu581TAtFGCH9CYTCkYrCpuWUG9GkgeB");
string addr = "41vEA7Ye8Bpeda6g9v5t46koWrVn2PNgEKgluJjmiKCFTsh9gajr8J3pad49rqu581TAtFGCH9CYTCkYrCpuWUG9GkgeB";
xmreg::Account acc; xmreg::XmrAccount acc;
bool r = xmr_accounts.select_account("41vEA7Ye8Bpeda6g9v5t46koWrVn2PNgEKgzquJjmiKCFTsh9gajr8J3pad49rqu581TAtFGCH9CYTCkYrCpuWUG9GkgeB", acc); bool r = xmr_accounts.select(addr, acc);
if (r) if (r)
{ {
cout << "Account foudn: " << acc.id << endl; cout << "Account foudn: " << acc.id << endl;
xmreg::XmrAccount new_acc = acc;
new_acc.total_received = 20e12;
cout << xmr_accounts.update(acc, new_acc) << endl;
} }
else else
{ {
cout << "Account does not exist" << endl; cout << "Account does not exist" << endl;
cout << xmr_accounts.create(addr) << endl;
} }

@ -44,10 +44,6 @@ struct MySqlDeleter
class MySqlConnector class MySqlConnector
{ {
template <typename T>
using mysql_unqiue_ptr = unique_ptr<T, MySqlDeleter<T>>;
string url; string url;
string username; string username;
string password; string password;
@ -88,7 +84,7 @@ public:
// to see what it does can run preprecoess on this file // to see what it does can run preprecoess on this file
// g++ -I/usr/include/mysql -E ~/restbed-xmr/src/MySqlConnector.h > /tmp/out.h // g++ -I/usr/include/mysql -E ~/restbed-xmr/src/MySqlConnector.h > /tmp/out.h
sql_create_11(AccountRow, 1, 0, sql_create_11(Accounts, 1, 2,
sql_int_unsigned , id, sql_int_unsigned , id,
sql_varchar , address, sql_varchar , address,
sql_bigint_unsigned, total_received, sql_bigint_unsigned, total_received,
@ -101,9 +97,11 @@ sql_create_11(AccountRow, 1, 0,
sql_timestamp , created, sql_timestamp , created,
sql_timestamp , modified); sql_timestamp , modified);
struct Account : public AccountRow
struct XmrAccount : public Accounts
{ {
using AccountRow::AccountRow; using Accounts::Accounts;
}; };
@ -117,7 +115,7 @@ class MySqlAccounts: public MySqlConnector
)"; )";
static constexpr const char* INSERT_STMT = R"( static constexpr const char* INSERT_STMT = R"(
INSERT INTO `Accounts` (`address`) VALUES (%0q) INSERT INTO `Accounts` (`address`) VALUES (%0q);
)"; )";
@ -126,7 +124,7 @@ public:
bool bool
select_account(const string& address, Account& account) select(const string& address, XmrAccount& account)
{ {
Query query = conn.query(SELECT_STMT); Query query = conn.query(SELECT_STMT);
@ -134,7 +132,7 @@ public:
try try
{ {
vector<Account> res; vector<XmrAccount> res;
query.storein(res, address); query.storein(res, address);
if (!res.empty()) if (!res.empty())
@ -152,47 +150,51 @@ public:
return false; return false;
} }
// bool bool
// create_account(const string& address) create(const string& address)
// { {
// mysql_unqiue_ptr<PreparedStatement> prep_stmt {con->prepareStatement(SELECT_STMT)}; Query query = conn.query(INSERT_STMT);
// query.parse();
// prep_stmt->setString(1, address);
// try
// try {
// { SimpleResult sr = query.execute(address);
// prep_stmt->execute();
// } if (sr.rows() == 1)
// catch (SQLException& e) return true;
// { }
// MYSQL_EXCEPTION_MSG(e); catch (mysqlpp::Exception& e)
// return false; {
// } MYSQL_EXCEPTION_MSG(e);
// return false;
// return true; }
// }
// return false;
// bool }
// update_account(
// const string& address, bool
// const uint64_t& total_recieved = 0, update(XmrAccount& acc_orginal, XmrAccount& acc_new)
// const uint64_t& total_sent = 0, {
// const uint64_t& scanned_height = 0,
// const uint64_t& scanned_block_height = 0, Query query = conn.query();
// const uint64_t& start_height = 0,
// const uint64_t& transaction_height = 0, try
// const uint64_t& blockchain_height = 0 {
// ) query.update(acc_orginal, acc_new);
// {
// mysql_unqiue_ptr<PreparedStatement> prep_stmt(con->prepareStatement(INSERT_STMT)); SimpleResult sr = query.execute();
//
// prep_stmt->setString(1, address); if (sr.rows() == 1)
// prep_stmt->setUInt64(2, total_recieved); return true;
// prep_stmt->setString(3, "a"); }
// prep_stmt->execute(); catch (mysqlpp::Exception& e)
// {
// return false; MYSQL_EXCEPTION_MSG(e);
// } return false;
}
return false;
}
}; };

Loading…
Cancel
Save