A questão é a seguinte. Eu tenho um form pedidos que tem um campo Id_Pedido que é numero e um campo auto numeração do banco de dados postgres chamado “num_pedido”. Gostaria de ao salvar o registro o sistema fizesse Id_Pedido = {Num_Pedido}. O problema é que o valor de Num_Pedido só é dado pelo banco de dados junto com o refresh da tabela e aí não consigo fazer esta operação.
No evento onAfterInsert:
(exemplo da macro do SC)
// SQL statement parameters
$update_table = ‘pedidos’; // Table name
$update_where = “fId_Pedido = ‘{Id_Pedido}’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“Num_Pedido = ‘{Id_Pedido}’”,
);
// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
Deixei meu script assim:
// SQL statement parameters
$update_table = ‘Pedidos’; // Table name
$update_where = “Id_Pedido = ‘{Id_Pedido}’”; // Where clause
$update_fields = array(“Id_Pedido”={NumPedido},“Data_para_enrega”={Data_para_entrega}");
// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
Mas algo está errado pois ao abrir o form dá o erro abaixo:
Parse error: syntax error, unexpected ‘=’, expecting ‘)’ in C:\Program Files\NetMake\v9\wwwroot\scriptcase
Consegui corrigir o codigo. Só que agora ao incluir o registro dá outro erro:
Erro ao incluir na base de dados:
ERROR: syntax error at or near ")"LINE 1: …“Observ”, “Desc_Pedido”, “CodCamp”, “Data_Envio”, ) VALUES (… ^
Aparentemente eu teria que citar todos os campos da tabela
Exemplo cru da macro:
/**
- Update a record on another table
*/
// SQL statement parameters
$update_table = ‘my_table’; // Table name
$update_where = “field_3 = ‘condition’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“field_1 = ‘new_value_field_1’”,
“field_2 = ‘new_value_field_2’”,
);
// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);
Cuidado com as posições das aspas entre os campos.