Código Delphi
[-]function tfagregausuario.verificarnick:byte;
begin
ibdataset1.Close;
ibdataset1.selectSQL.text:='select * from usuarios where nick = :nick4';
ibdataset1.ParamByName('nick4').value:=lowercase(trim(enick.Text));
ibdataset1.Open;
if (ibdataset1.IsEmpty) then
begin
end
else
showmessage('el usuario existe');
end;
Esa es la funcion y este es el procedimiento
Código Delphi
[-]procedure TFagregausuario.enickKeyPress(Sender: TObject; var Key: char);
begin
if not (key in ['A'..'Z','a'..'z',#7,#8, #13]) then
key:=#0
else
if (key=#13) and (enick.text<>'') then
begin
verificarnick;
end;
No hay mas, cada vez que escribo en text1.text y pulso enter, se va a verificar si el usuario existe.
De primera vez si lo hace bien, de segunda vez, sin cerrar el programa, ya me aparece que nick4 not found.
Efectivamente, faltaba poner en la funcion algo como esto:
Código Delphi
[-]ibdataset1.Close;
ibdataset1.SelectSQL.text:='select * from usuarios';
ibdataset1.open;
Para que de la segunda vuelta empiece de nuevo con el select de todos los usuarios, pero poniendolo al principio o al final de la funcion, me da el error antes o despues.