Esempio n. 1
0
Replacement* Replacements::addReplacement(string sRegex, string replacement) {
    Replacement* newReplacementPtr = new Replacement(mDb);
    newReplacementPtr->setRegex(sRegex);
    newReplacementPtr->setReplacement(replacement);

    //newReplacementPtr->setname(mname);

    stringstream strSql;
    strSql  << "SELECT rowid FROM replacementGroups "
            << "WHERE name = " << cSqlStrOut(mName)
            << " AND ownerId = " << mOwnerId;
    string sRowId;
    exec(strSql, mDb, onReadFirstField, &sRowId);
    if (sRowId.length() > 0) {
        //sqlite_int64 rowId = cSqlInFormated<sqlite_int64>(sRowId);
        newReplacementPtr->setGroupId(cSqlInFormated<sqlite_int64>(sRowId));
    } else {
        strSql.str(""); //clear
        strSql  << "INSERT INTO replacementGroups "
                << "(name, ownerId) VALUES ("
                << cSqlStrOut(mName) << ", "
                << mOwnerId << ")";
        exec(strSql, mDb);

        newReplacementPtr->setGroupId(sqlite3_last_insert_rowid(mDb));
    }

    newReplacementPtr->save();

	mChildren.insert(make_pair(newReplacementPtr->getRowId(), newReplacementPtr));
    return newReplacementPtr;
}
Esempio n. 2
0
Replacements::Replacements(sqlite3* db, string name, sqlite_int64 ownerId) :
    mDb(db), mName(name), mOwnerId(ownerId)
{
    exAssert(db!=NULL);
    exAssertDesc(ownerId > 0, "ownerId should be greater null");

	sqlite_int64 groupId = 0;

	stringstream strSql;
	strSql  << "SELECT rowid FROM replacementGroups "
		<< "WHERE name = " << cSqlStrOut(mName)
		<< " AND ownerId = " << mOwnerId;
	string sRowId;
	exec(strSql, mDb, onReadFirstField, &sRowId);
	if (sRowId.length() > 0) {
		groupId = cSqlInFormated<sqlite_int64>(sRowId);
	} else {
		strSql.str(""); //clear
		strSql  << "INSERT INTO replacementGroups "
			<< "(name, ownerId) VALUES ("
			<< cSqlStrOut(mName) << ", "
			<< mOwnerId << ")";
		exec(strSql, mDb);

		groupId = sqlite3_last_insert_rowid(mDb);
	}


	vector<string> rowids;
	strSql.str(""); //clear
	strSql << "SELECT rowid FROM replacements "
		"WHERE groupId = " << cSqlOutFormated(groupId) ;

	exec(strSql, db, onAppendFirstColumnToVector, &rowids);
	for (vector<string>::iterator it = rowids.begin();
		it != rowids.end(); it++) {

			stringstream strRowid(*it);
			sqlite_int64 rowid;
			strRowid >> rowid;
			Replacement* newReplacement = new Replacement(db,  rowid);
			mChildren[newReplacement->getRowId()] = newReplacement;
	}
};