Bueno......
Como no vi demasiado interes en esto lo que hice fue cambiar mi codigo a esto:
Código Delphi
[-]
procedure TfrmUsers.btnGuardarClick(Sender: TObject);
var
sContra : String;
i: integer;
begin
with frmDatos.MDOQuery1 do
begin
if VerificaDatos then
begin
sContra := frmDatos.Encripta(edClave.Text);
case cbCategoria.ItemIndex of
1: i := 1; 2: i := 2; 3: i := 3; 4: i := 4; end;
if sModo = 'Insertar' then
begin
close;
sql.Clear;
sql.Add('INSERT INTO dppUSR (login,clave,categoria,nombre,');
sql.Add('paterno,materno,domicilio,colonia,cp,ciudad,estado,');
sql.Add('telefono) ');
sql.add('VALUES(');
sql.Add('''' + edLogin.Text + ''',''' + sContra + ''',');
sql.add('''' + IntToStr(i) + ''', ''' + edNombre.text + ''',');
sql.Add('''' + edPaterno.Text + ''',''' + edMaterno.Text+''',');
sql.add('''' + edDomicilio.Text + ''','''+edColonia.Text+''',');
sql.add('''' + edCP.Text + ''','''+ edCiudad.Text + ''',');
sql.Add('''' + edEstado.Text + ''',''' + edTelefono.Text +''')');
ExecSQL;
end
else
begin
close;
sql.Clear;
sql.Add('UPDATE dppUSR SET');
sql.add('Login = ''' + edLogin.Text + ''',');
sql.add('Clave = ''' + sContra + ''',');
sql.add('Categoria = ''' + IntToStr(i) + ''',');
sql.add('Nombre = ''' + edNombre.text + ''',');
sql.add('Paterno = ''' + edPaterno.Text + ''',');
sql.add('Materno = ''' + edMaterno.Text + ''',');
sql.add('Domicilio = ''' + edDomicilio.Text + ''',');
sql.add('Colonia = ''' + edColonia.Text + ''',');
sql.add('CP = ''' + edCP.Text + ''',');
sql.add('Ciudad = ''' + edCiudad.Text + ''',');
sql.add('Estado = ''' + edEstado.Text + ''',');
sql.add('Telefono = ''' + edTelefono.Text + '''');
sql.Add(' WHERE Codigo = ''' + IntToStr(iCodigo) + '''');
ExecSQL;
end;
if sModo = 'Insertar' then
lstUsuarios.Items.Add(edLogin.Text);
end;
btnCancelarClick(Sender);
end;
end;
y pues sanseacabo el problema! cuando edito lo hace en el registro correcto, no protesta porque el campo login este declarado como UNIQUE y pues todos contentos!!!! .....
mmmmmm eso ultimo ni yo me lo crei! Insisto si la sentencia sql ya esta declarada en el "dataset editor" porque no me funciona correctamente o yo la estoy llamando en forma equivoca, algo que debere de continuar investigando pero por el momento ya resolvi mi problema y la aplicacion esta trabajando.