Prueba entonces con una query con parámetros:
Código Delphi
[-]
query.SQL.Text := 'UPDATE ' + bdticket + ' SET ptotal = total, pagado = agado, debe = :debe ' +
'where id = :id';
query.Prepare;
query.ParamByName('ptotal').AsFloat := StrToFloat(ptotal.Caption);
query.ParamByName('pagado').AsFloat := StrToFloat(editentrega.Text);
query.ParamByName('debe').AsFloat := resto;
query.ParamByName('id').AsInteger := idcabecera;
query.Execute
Update: Vaya, se me adelantaron... :P
Saludos...