Пример #1
0
// 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;
}
Пример #2
0
// 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;
}