// Update a Split bool QuasarDB::update(const Split& orig, Split& split) { if (orig.id() == INVALID_ID || split.id() == INVALID_ID) return false; if (!validate(split)) return false; if (!update(orig, (Gltx&)split)) return false; // Update the split tables QString cmd = updateText("split", "split_id", "account_id," "amount,transfer_id"); Statement stmt(connection(), cmd); stmtSetId(stmt, split.accountId()); stmtSetFixed(stmt, split.amount()); stmtSetId(stmt, split.transferAccount()); stmtSetId(stmt, split.id()); if (!execute(stmt)) return false; if (!sqlDeleteLines(orig)) return false; if (!sqlCreateLines(split)) return false; commit(); dataSignal(DataEvent::Update, orig); return true; }
// Create a Split bool QuasarDB::create(Split& split) { if (!validate(split)) return false; if (!create((Gltx&)split)) return false; QString cmd = insertText("split", "split_id", "account_id," "amount,transfer_id"); Statement stmt(connection(), cmd); stmtSetId(stmt, split.id()); stmtSetId(stmt, split.accountId()); stmtSetFixed(stmt, split.amount()); stmtSetId(stmt, split.transferAccount()); if (!execute(stmt)) return false; if (!sqlCreateLines(split)) return false; commit(); dataSignal(DataEvent::Insert, split); return true; }