Ver Mensaje Individual
  #5  
Antiguo 28-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
mjj, no te compliques tanto la vida. Si bien es cierto que lo has hecho bien, puedes hacerlo en tiempo de diseño (con asistentes que te propondrán todas las sqls de forma estandard) evitando tener que escribir código.

En principio, rellena la propiedad select del TIbdataset en el inspector de objetos. Después, boton derecho sobre el TIbDataset y "Dataset Editor" o algo así (yo uso los MDOLIB y en IBX no sé como se llamará la opción del menú). Como dije, eso te propone unas sqls estandard, que después de aceptar las pantallitas, puedes modificar para ajustarla a tus necesidades.

La sql de Select yo pondría:
Código SQL [-]
select * from claves where usuario = :Nombre;
Y en el evento BeforeOpen del TIBdataset:
Código Delphi [-]
 ibdataset1.parambyname('Nombre') := edit1.text; // no hace falta el quotedstr;

Tu código quedaría resumido así:
Código Delphi [-]
//desde aqui comienzo a vuscar el registro que quiero editar
ibdataset1.close;
// ahora se ejecuta el evento before open y se asigna el usuario buscado
ibdataset1.open;
//aqui termino de buscar el registro que voy a editar

if not ibdataset.Empty then
begin
  //comienzo a editar el registro
  ibdataset1.edit;
  ibdataset1.fieldbyname('clave').asstring:=edit2.text;
  ibdataset1.post;
  //termino con una transaccion para que se lleve a cabo el cambio
end;
ibtransaction1.commit;

PD: IBX no será compatible con Firebird, te sugiero otros componentes de acceso, como los MDOLIB (su desarrollo está parado pero son funcionales), Zeos, ADO, etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita