//Create a new customer and return that object to the calling function Customer *Database::createCustomer(string firstName, string lastName, int pin, string emailAddress) { // create a record in the database for the customer // create and open database SQLiteDatabase *pDatabase = this->connect(); SQLiteStatement *pStmt = this->createStatement(pDatabase); //Insert query pStmt->Sql("INSERT INTO Customer (lastName, firstName, emailAddress, PIN) VALUES(?, ?, ?, ?);"); pStmt->BindString(1, lastName); pStmt->BindString(2, firstName); pStmt->BindString(3, emailAddress); pStmt->BindInt(4, pin); // executes the INSERT statement and cleans-up automatically pStmt->ExecuteAndFree(); // get the customer ID (the last row id) pStmt->Sql("SELECT last_insert_rowid();"); pStmt->Execute(); int customerId = pStmt->GetColumnInt(0); // get the int value at the zeroth column pStmt->FreeQuery(); // return the customer to the calling function return new Customer(customerId, firstName, lastName, emailAddress, pin); }
// Account: Create, Update, Retrieve Account *Database::createAccount(int customerId, double balance,string accountStatus, string accountType){ // create and open database SQLiteDatabase *pDatabase = this->connect(); SQLiteStatement *pStmt = this->createStatement(pDatabase); pStmt->Sql("INSERT INTO Account (customerId, balance, accountStatus, accountType) VALUES(?, ?, ?, ?);"); pStmt->BindInt(1, customerId); pStmt->BindDouble(2, balance); pStmt->BindString(3, accountStatus); pStmt->BindString(4, accountType); // executes the INSERT statement and cleans-up automatically pStmt->ExecuteAndFree(); // get the customer ID (the last row id) pStmt->Sql("SELECT last_insert_rowid();"); pStmt->Execute(); int accountId = pStmt->GetColumnInt(0); // get the int value at the zeroth column pStmt->FreeQuery(); // return the account to the calling function Database *dbObject = new Database(); //Write this transaction to the database dbObject->createTransaction(accountId, balance, "Deposit", "Time", "Opening Account Deposit"); //Build and return an account object to the calling function return new Account(accountId, customerId, balance,accountStatus, accountType); }
//Get a customer's account by customerId Account *Database::getAccount(int custId){ // create and open database SQLiteDatabase *pDatabase = this->connect(); SQLiteStatement *pStmt = this->createStatement(pDatabase); //Query by CustomerId pStmt->Sql("SELECT * FROM Account where customerId = ?"); pStmt->BindInt(1, custId); pStmt->Execute(); //Account Table: accountId, customerId, balance, accountType int accountId = pStmt->GetColumnInt(0); int customerId = pStmt->GetColumnInt(1); double balance = pStmt->GetColumnDouble(2); string accountStatus = pStmt->GetColumnString(3); string accountType = pStmt->GetColumnString(4); pStmt->FreeQuery(); // return the account to the calling function return new Account(accountId, customerId, balance, accountStatus,accountType); }
//Return a customer from the database based on email address Customer *Database::getCustomer(string email) { // create and open database SQLiteDatabase *pDatabase = this->connect(); SQLiteStatement *pStmt = this->createStatement(pDatabase); //Query the database for a customer with this specific email address pStmt->Sql("SELECT customerId, firstName, lastName, emailAddress, PIN FROM Customer where emailAddress = ?"); pStmt->BindString(1, email); pStmt->Execute(); //Parse customer attributes from returned query int customerId = pStmt->GetColumnInt(0); string firstName = pStmt->GetColumnString(1); string lastName = pStmt->GetColumnString(2); string emailAddress = pStmt->GetColumnString(3); int pin = pStmt->GetColumnInt(4); pStmt->FreeQuery(); //Build and return a customer object return new Customer(customerId, firstName, lastName, emailAddress, pin); }
bool NoteList::createNote(int idx) { SQLiteStatement *q = g_mainWindow->getFoundNote(idx); bool ret = false; if(q->FetchRow()) { NoteItem* noteItem; noteItem = new NoteItem(this,q->GetColumnInt(0),true); noteItem->autoSize(); m_notes[idx] = noteItem; int delta = noteItem->height() - UNIT_PADDING; if(delta) { m_heightDelta += delta; adjustSize(); } ret = true; } return ret; }
//Polls the database for this customer by ID and returns Customer *Database::getCustomer(int customerId) { // create and open database SQLiteDatabase *pDatabase = this->connect(); SQLiteStatement *pStmt = this->createStatement(pDatabase); pStmt->Sql("SELECT firstName, lastName, emailAddress, PIN FROM Customer where customerId = ?"); pStmt->BindInt(1, customerId); pStmt->Execute(); //Build the customer attributes from the returned query string lastName = pStmt->GetColumnString(0); string firstName = pStmt->GetColumnString(1); string emailAddress = pStmt->GetColumnString(2); int pin = pStmt->GetColumnInt(3); pStmt->FreeQuery(); //Build and return a customer object return new Customer(customerId, firstName, lastName, emailAddress, pin); }