Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ADOquery y MaskEdit (https://www.clubdelphi.com/foros/showthread.php?t=48380)

novato03 23-09-2007 23:08:41

ADOquery y MaskEdit
 
Hola amigos del clubdelphi, otra vez estoy por aquí con el asunto de los maskedit, tengo el siguiente código para realizar consulta por teléfono en este formato (999)999-9999.

Código Delphi [-]
procedure TFrmConsultacontactos.Button5Click(Sender: TObject);
begin
Dmodulo.AQcontactos.Close;
Dmodulo.AQcontactos.Sql.Clear;
Dmodulo.AQcontactos.SQL.Text:= 'select * from contactos';
Dmodulo.AQcontactos.Sql.Add('where telefono1 = '+#13+QuotedStr(MaskEdit1.Text)+#13);
Dmodulo.AQcontactos.Open;

if Dmodulo.AQcontactos.EOF then
begin
showmessage('Resgistro no existe');
MaskEdit1.Text:='';
MaskEdit1.setfocus;
end;
end;

funciona perfectamente si lleno por el completo el maskedit, el problema se presenta cuando por el ejemplo la realizo de forma incompleta como (809)999- y así sucesivamente, el caso es que no me dejar realizar consultas incompleta sin darme un error, claro se presuntarán ¿por qué realizar una consulta incompleta?, en realidad la pruebo de esta forma para evitar posibles errores de ejecución si algún usuario por cosa de la vida introduce un número incompleto.

Este es el error que presenta:

Cita:

Project Sisconem.exe raised exception class EDBEditError with message 'Invalid input value. Use escape key abandon changes'. Process stopped. Use Step or Run to continue.
Espero haberme explicado bien, gracias de antemano...

waly2k1 24-09-2007 03:59:19

Rta...
 
Edité tu código y quedó algo así, creo debería funcionar, otra cosa
si pones un maskedit es para que el usuario no ingrese cualquier cosa, entonces por qué no validas que el ingreso sea correcto ?


procedure TFrmConsultacontactos.Button5Click(Sender: TObject);
begin
Dmodulo.AQcontactos.Close;
Dmodulo.AQcontactos.Sql.Clear;
Dmodulo.AQcontactos.Sql.Text := 'SELECT * FROM Contactos WHERE Telefono1 LIKE ' + QuotedStr( MaskEdit1.Text + '%' );
Dmodulo.AQcontactos.Open;

if Dmodulo.AQcontactos.EOF then
begin
showmessage( 'REGISTRO INEXISTENTE' );
MaskEdit1.Text := '';
MaskEdit1.SetFocus;
end;
end;


Saludos y espero te sirva.


La franja horaria es GMT +2. Ahora son las 15:29:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi