void TemplatesDBManager::createTriggers() {
    std::string insertTrigger = "CREATE TRIGGER IF NOT EXISTS on_template_insert AFTER INSERT ON Templates BEGIN UPDATE Templates SET number = (SELECT max(number) + 1 FROM Templates) WHERE number = -1; END;";
    std::string deleteTrigger = "CREATE TRIGGER IF NOT EXISTS on_template_delete AFTER DELETE ON Templates BEGIN UPDATE Templates SET number = number - 1 WHERE number > OLD.number; END;";

    executeQueryWithoutResult(insertTrigger);
    executeQueryWithoutResult(deleteTrigger);
}
Exemple #2
0
//组合delete语句
int deleteData(base *base, char *table) {
	MYSQL *conn = initMysql();
	char *delete = "DELETE FROM  ";  //`user` WHERE `id`='7'";
	char field_where[1024] = { 0 };
	char sql[2048] = { 0 };
	compositeDeteleSql(base, field_where);
	sprintf(sql, "%s `%s` where %s", delete, table, field_where);
	fprintf(cgiOut, "%s", sql);
	executeQueryWithoutResult(sql);
	return 1;
}
Exemple #3
0
//组合更新语句
int updateData(base *base, char *table, int field_cnt, int where_cnt) {
	MYSQL *conn = initMysql();
	char *update = "UPDATE  ";  // `test`.`user` SET `pwd`='11' WHERE `id`='1';
	char field_select[1024] = { 0 };
	char field_where[1024] = { 0 };
	char sql[1024] = { 0 };
	compositeUpdateSql(base, field_select, field_where, field_cnt, where_cnt);
	sprintf(sql, "%s  `%s`  SET  %s  WHERE %s", update, table, field_select,
			field_where);
	fprintf(cgiOut, "%s", sql);
	executeQueryWithoutResult(sql);
	return 1;
}
Exemple #4
0
//组合Insert语句
int insertData(base *parent, char *table) {
	MYSQL *conn = initMysql();
	char field_name_sql[1048] = { 0 };
	char field_value_sql[1048] = { 0 };
	int field_name_length = 0;
	int field_value_length = 0;
	char *insert = "INSERT INTO";
	char sql[2048] = { 0 };
	compositeInsertSql(parent, field_name_sql, field_value_sql);
	sprintf(sql, "%s `%s` %s VALUES %s; ", insert, table, field_name_sql,
			field_value_sql);
	executeQueryWithoutResult(sql);
	int last_id = mysql_insert_id(conn);
	fprintf(cgiOut, "%s", sql);
	return last_id;
}