Tengo un problema que ya le busque y rebusque y no tengo idea por que me lo hace, a la hora de abrir un ClienDataSEt para especificar en PARAM me llama a un procedimiento de filter de otra unidad el cual yo no lo llamo de ninguna forma o lo disparo con ningun evento del CDS...bien este es el codigo
PROCEDURE PARA GRAVAR CAMBIOS EN UN REGISTRO QUE SE MODIFICO
Código Delphi
[-]procedure TFrclientesmod.BtguardarcambiosclienClick(Sender: TObject);
begin
with logicanegocio do
begin
if CDSclien.Modified=True then
begin
CDSclien.ApplyUpdates(0);
modulodatos.IBTransaction1.Active:=true;
modulodatos.IBTransaction1.Commit;
end;
Btguardarcambiosclien.Enabled:=False;
BtCancelarCambiosclien.Enabled:=False;
btnBuscarCte.Enabled:=True;
EdModcliente.Enabled:=True;
cmbBusqCte.Enabled:=True;
EdModcliente.SetFocus;
cdsClien.close;
cdsClien.Params.ParamByName('Cod_cliente').Value:=0;
cdsClien.open;
CDSclieCOD2.open;
end;
AL CORRIENDO EL PROGRAMA LINEA POR LINEA Y PASAR POR cdsClien.open; BRINCA AUTOMATICAMENTE AL SIGUIENTE PROCEDIMIENTO, desactivo el DBGRID, es un ClienDataSet diferente y esta en una unidad diferente...y al salir del programa de da un error de VIOLACION DE MEMORIA o algo asi... ya revise todos los eventos en los ClienDataSet y no encontre nada que dispare el procedimiento...el Filtro que se activa lo uso en la forma de altas de Clientes, para que al teclear el nombre del cliente se evite dar de alta dos veces al mismo nombre.... a alguien le ha pasado lo mismo.? Gracias por su ayuda
Código Delphi
[-]procedure TFrmaltadeclientes.DBEdit2Change(Sender: TObject);
begin
if DBGshowdoubleclient.Enabled=False then DBGshowdoubleclient.Enabled:=True;
if DBGshowdoubleclient.Visible=False then DBGshowdoubleclient.Visible:=True;
with logicanegocio.CDSclieCOD do
begin
Filtered := False;
Filter := Format( 'CLIENTE LIKE %s ', [ QuotedStr('%' + DBEdit2.Text + '%') ] );
Filtered := True;
Refresh;
DBGshowdoubleclient.Refresh;
end;
end;