Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2003
kwan kwan is offline
Miembro
 
Registrado: jul 2003
Ubicación: Ceuta(España)
Posts: 68
Poder: 21
kwan Va por buen camino
Error en busqueda.

Hola preguntaros de que forma puedo hacer lo siguiente,
tengo un form con una serie de DBEdit relacionado con
una base de datos en paradox, le he introducido un edit
en el cual quiero buscar los numeros de los socios ya
que cada socio tiene relacionado un numero, bueno creo
que lo hago bien pero tiene una pega y es la siguiente
cuando busco un numero inexistente me lo avisa con el
showMessage hasta aqui correcto, pero como lo hago para
que cuando el Edit no tenga nada o introduzca una letra
me vuelva el ShowMessage de introducir solo numeros ya
k si no me da error??

este es el codigo que meto en mi form no se si con Try
y except se puede por eso os pido ayuda.

procedure TForm1.edCodigoKeyPress(Sender:TObject; var key: Char);

Begin

If Key = #13 Then
Begin
Table1.First;
If Not Table1.Locate('N_CARNET',StrToInt(edCodigo.Text),[])Then
ShowMessage('Ese Nº Carnet no existe');
end;


Gracias.
Responder Con Cita
  #2  
Antiguo 04-09-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 22
javiermorales Va por buen camino
Buenos Días, podrías ponerlo entre:

Código:
try
    cadena := IntToStr(edCodigo.Text);
except
    ShowMessage('Debe introducir solo números');
    Exit;
end

//RESTO DE CODIGO
También podrías evaluarlo en el evento Onchange del Edit, realizando cada vez la comprobación anterior. es decir que todo lo que te mete es un número.

Espero que te sirva
Responder Con Cita
  #3  
Antiguo 04-09-2003
kwan kwan is offline
Miembro
 
Registrado: jul 2003
Ubicación: Ceuta(España)
Posts: 68
Poder: 21
kwan Va por buen camino
Hola y gracias x contestar, perdona mi ignorancia pero soy nuevo en esto, donde pones cadena que parametros devo de poner??

Gracias de nuevo.
Responder Con Cita
  #4  
Antiguo 04-09-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 22
javiermorales Va por buen camino
Hola de nuevo,no te había indicado nada sobre la variable cadena ya que no lo consideré necesario. Es simplemente una variable de tipo string, en tu ejemplo, sería así:

Código:
procedure TForm1.edCodigoKeyPress(Sender:TObject; var key: Char);

var
   cadena: string;

Begin
If Key = #13 Then
Begin
 Table1.First;
 try
    cadena := IntToStr(edCodigo.Text);
 except
    ShowMessage('Debe introducir solo números');
    Exit;
 end;
 
 If Not Table1.Locate('N_CARNET',cadena,[])Then
  ShowMessage('Ese Nº Carnet no existe');
end;
Un saludo
Responder Con Cita
  #5  
Antiguo 05-09-2003
kwan kwan is offline
Miembro
 
Registrado: jul 2003
Ubicación: Ceuta(España)
Posts: 68
Poder: 21
kwan Va por buen camino
Hola de nuevo, meda error al compilar se queda el cursor donde esta en rojo:

try
cadena := IntToStr(edCodigo.Text)|;


de todas forma Gracias.
Responder Con Cita
  #6  
Antiguo 05-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
disculpa javiermorales pero creo que la variable cadena tiene que ser integer y en el try se debe verificar si hay error en
try
Cadena := strtoint(edCodigo.Text);

Cadena : Integer; //o mayor si lo necesitas

luego el locate lo haces con edCodigo.Text y no con la variable Cadena.
Responder Con Cita
  #7  
Antiguo 05-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Prueba con esto:

Código:
          procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
          begin
            if ( StrScan('0123456789',Key) <> nil ) or
               ( Key = Char(VK_BACK) ) then { Habilitar tecla de borrado }
            begin
              {Aqui tu tratamiento normal del evento}
            end
            else
              Key := #0;
          end;
Un Saludo.
Responder Con Cita
  #8  
Antiguo 05-09-2003
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 22
javiermorales Va por buen camino
Rudi, tienes toda la razón del mundo, ayer tenía las neuronas en otra parte.
Responder Con Cita
  #9  
Antiguo 05-09-2003
kwan kwan is offline
Miembro
 
Registrado: jul 2003
Ubicación: Ceuta(España)
Posts: 68
Poder: 21
kwan Va por buen camino
Hola emprimer lugar Gracias a todos, con las correcciones de rudi las probe y me funcionan pero una cosa curiosa en tiempo de ejecucion me da error y eso me a liado un poco, con las de Marcos las probe pero me daba error y posiblemente funcionen tambien pero en tiempo de ejecucion me da error.

Un saludo a todos.
Responder Con Cita
  #10  
Antiguo 05-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
ejecutando desde delphi te da un error o corriendo el ejecutable?

si es desde delphi, no te preocupes pues el compilador te advierte que no pudo transformar la cadena, pero dentro del try..except previenes que el ejecutable muetre el error, lo que haces es manipular el error en el except, en tu caso con un showmessage.

esto es para ambos casos, el de javiermorales y el de marcoszorrilla.

si el error te lo da en el ejecutable, especifica que error te da a ver que se puede hacer.
Responder Con Cita
  #11  
Antiguo 05-09-2003
kwan kwan is offline
Miembro
 
Registrado: jul 2003
Ubicación: Ceuta(España)
Posts: 68
Poder: 21
kwan Va por buen camino
Hola Rudi creo k no me he explicado bien, cuando me crea el ejecutable si k funciona es cuando desde delphi le doy a ejecutar cuando da el error que ya tu bien me explicas por lo del try, una vez que me ha creado el ejecutable si funciona correctamente.

Gracias,

Kwan.
Responder Con Cita
  #12  
Antiguo 05-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
A la orden, siempre es bueno saberse útil.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:26:56.


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
Copyright 1996-2007 Club Delphi