Formulario - erro ao apagar o ultimo registo

Bom dia,

Tenho um formulário que se chama “apolices” contendo a função mestre detalhe que referencia outra tabela chamada de “movimentos” (é como uma fatura com linhas de movimento de artigos).

O erro está quando tento apagar a última linha de registo de movimentos, o scriptcase dá o seguinte erro no update do sql.

O código que tenho é o seguinte:
codigo:
sc_lookup(dataset, “select sum(valor)as valor, sum(valor_estorno) as estorno, sum(valor)-sum(valor_estorno)as dif
from tbl_movimentos
where id_tbp_apolice = ‘{id_tbp_apolice}’”);

$totalcampo = {dataset[0][0]};
$totalestorno = {dataset[0][1]};
$dif = {dataset[0][2]};

sc_master_value(‘valor’, $totalcampo);
sc_master_value(‘valor_estorno’, $totalestorno);
sc_master_value(‘saldo’, $dif);

//sc_master_value(‘valor’,{dataset[0][0]});

sc_exec_sql(“UPDATE tbl_apolice SET valor = $totalcampo, valor_estorno = $totalestorno, saldo = $dif WHERE id_apolice = ‘{id_tbp_apolice}’”);

//echo total;

Adquiri o scriptcase há um mês e ainda estou a tentar perceber o seu funcionamento, agradeço desde já a vossa ajuda.
Obrigado.
Luís Horta

cade o erro???

outra coisa si tu ja não tem mais detalhes significa que vai vim valores NULL no select , deve-se tratar os mesmos

sc_lookup(dataset, "select ifnull(sum(valor),0) as valor, ifnull(sum(valor_estorno),0) as estorno, ifnull(sum(valor)-sum(valor_estorno),0)as dif 

isto é para mysql si tiver usando outro banco, vejo o equivalente da função [size=14pt]ifnull[/size]

Obrigado Willian Fernando pela rápida resposta.

O erro que dá é o seguinte (apenas quando apagado a última linha de movimento):

"Erro ao aceder a base de dados
UPDATE tbl_apolice SET valor =, valor_estorno=,
sado=WHERE id_apolice=‘37’

Close"

Obrigado mais uma vez pela ajuda.
Luís Horta

Olá Luís,

Você está usando o UPDATE em qual evento? Se for no OnAfterDelete, sugiro colocar no OnBeforeDelete, pois depois de apagado o registro do detalhe, logicamente não existirá mais o registro pra se fazer o UPDATE.

Boa tarde Kleyber;

Sim, resultou e já não dá erro.
Efetivamente tinha colocado no evento OnAfterDelete.

Muito obrigado pela ajuda.
Luís Horta