No se que pasa, el codigo es el que sigue...
Código:
procedure TfrmAgrupadora.btnGrabarClick(Sender: TObject);
begin
// Opcion de alta
if cOpcion = 'A' then
begin
if (edClave.Text = ' ') or (edDescripcion.Text = ' ')
or (edMinimo.Value = 0) or (edMaximo.Value = 0) then
ShowMessage('Error en datos de entrada...')
else
begin
if dmDatos.qryAgrupa.Locate('claveagrupa',edClave.Text,[loPartialkey]) then
ShowMessage('Clave agrupadora ya existe...')
else
begin
with dmDatos.qryModifica do begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO agrupadora (claveagrupa, descagrupa,minimo,maximo) VALUES(');
SQL.Add('''' + edClave.Text + ''',');
SQL.Add('''' + edDescripcion.text + ''','+FloatToStr(edMinimo.value)+','+FloatToStr(edMinimo.value)+ ')');
ExecSQL;
Close;
end;
end;
end;
end
// Opcion de Modificacion
else
begin
with dmDatos.qryModifica do begin
Close;
SQL.Clear;
SQL.Add('UPDATE agrupadora SET descagrupa = '''+edDescripcion.text + ''', minimo = '+FloatToStr(edMinimo.value)+',maximo='+FloatToStr(edMaximo.value)+' WHERE claveagrupa = '''+edClave.Text+''' ');
ExecSQL;
Close;
end;
end;
dmDatos.qryAgrupa.Close; // aqui ya intente meter lo de la transaccion
dmDatos.qryAgrupa.Open; // y tampoco quedo
GridAgrupadora.Refresh;
// Inicialización de campos
edClave.Text := '';
edDescripcion.Text := '';
edMinimo.Value := 0;
edMaximo.Value := 0;
cOpcion := 'A';
end;
no se si tenga que ver que con un qry modifico la tabla y el Grid esta ligado a otro???