he modificado moviendo el next y agregue un last al final de insert, con eso detengo el while, pero ahora solo me funciona para el primer registro ya que no se mueve al siguiente
Código Delphi
[-]
Begin
query2.close;
query2.sql.clear;
query2.sql.add('SELECT usuario as nomart FROM usuarios');
query2.Open;
while not query2.eof do
begin
if edit1.Text=query2.Fieldvalues['nomart'] then
begin
showmessage('El usuario ya existe');
query2.Last;
end
else
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into usuarios (usuario, password)');
query1.SQL.Add('values('+quotedstr(edit1.Text)+','+quotedstr(edit2.Text)+')');
query1.ExecSQL;
query3.close;
query3.Open;
edit1.Text:='';
edit2.Text:='';
showmessage('Se ha agregado con exito');
query2.Last;
end;
query2.Next;
end;