Ajuda com TIMEDIFF

Prezados, ja postei esta duvida anteriormente e novamente começo a ter problemas com o TIMEDIFF. Montei um formulario para cadastro de horas extras e preciso fazer o cálculo destas horas tenho os seguintes campos: InicioHEX, TerminoHEX e TotHEX. Ambos sao do tipo TIME. A macro faz o calculo corretamente, mas a minha dúvida é de como fazer esta hora que foi calculada cair certo no BD. O que esta acontecendo é o seguinte:

Eu logo no sistema e cadastro um horario de entrada e outro de saida (10:00 e 13:00), clico em adicionar. Olho no BD e está em branco… Sem fechar o formulario eu adiciono outra hora extra (15:00 e 16:30)… la no BD o tempo total desta hora é igual a 03:00 que é a hora cadastrada do registro anterior, se eu cadastrar um novo registro ele vai ter 01:30 como total…

Esta é a minha macro e ela está rodando debaixo de OnValidate:

/* Macro sc_lookup */

sc_select(horas, "
SELECT TIMEDIFF(Terminohex,Iniciohex) FROM TabHorExtra
");
/* Macro sc_lookup /
if (FALSE === {horas}) {
sc_erro_mensagem(“Ocorreu um erro no acesso ao banco de dados.
”);
}
elseif (count({horas}) == 0) { /
Macro sc_lookup */
sc_erro_mensagem(“Nenhum valor foi retornado pelo banco.
”);
}
else {
while (!$horas->EOF) {
{tothe} = $horas->fields[0];
$horas->MoveNext();
}
$horas->Close();
}