__CREATE_QUERY("INSERT INTO co_%s_%s(%s) SELECT %s FROM co_%s_%s WHERE id = %d",
par_area, child_class, child_prop, foreign_prop, par_area, par_class, par_id)
__SQL_EXEC
__ASSERT(ok, "Error during inserting object: par_area '%s' ,par_class '%s', par_id %d, child_class '%s', child_prop '%s', foreign_prop '%s' ",
par_area, par_class, par_id, child_class, child_prop, foreign_prop)
__SQL_GET_INTEGER(new_id,"SELECT last_value FROM co_%s_%s_sqid",
par_area, child_class)
__SEND_MESG_DEBUG("generic:insertChild done id=%d",new_id)
puta_classes[0] = par_class;
puta_ids[0] = par_id;
puta_classes[1] = child_class;
puta_ids[1] = new_id;
cou_queueActionX( cnx, par_class, puta_classes, puta_ids, CO_OP_INSERT, "child_class", child_class,NULL);
// getting current values
__CREATE_QUERY("SELECT * FROM cov_%s_%s WHERE id = %d",
par_area, child_class, new_id)
__SQL_GET_RESULT
__ASSERT(ok, "Could not get data for new object (just inserted), par_area '%s', child_class '%s', new_id %d",
par_area, child_class, new_id)
puta_classes[0] = child_class;
puta_ids[0] = new_id;
puta_classes[1] = par_class;
puta_ids[1] = par_id;
puta_classes[2] = NULL;
puta_ids[2] = 0;
nFields = cor_GetFieldCount(cnx, corec);
props = ap_palloc(p, 2 * nFields * sizeof(char*) + 1);
for (i = 0; i < nFields; i++)
{
props[2*i] = ap_pstrdup(p, cor_GetFieldName(cnx, corec, i));
props[2*i+1] = ap_pstrdup(p, cor_GetValue (cnx, corec, 0, i));
}
props[2*i]=NULL;
//cou_sendMessage(cnx, "we have props");
__CLEAR_RESULT
cou_queueActionXX( cnx, child_class, puta_classes, puta_ids, CO_OP_UPDATE, props);
cou_setReturnValue(cnx, &new_id, CO_INTEGER);