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;
Tu código quedaría resumido así:
Código Delphi
[-]
ibdataset1.close;
ibdataset1.open;
if not ibdataset.Empty then
begin
ibdataset1.edit;
ibdataset1.fieldbyname('clave').asstring:=edit2.text;
ibdataset1.post;
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