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 13-11-2008
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Thumbs down Validar busqueda en base de datos

Hola gente, les comento q este es mi primer hilo y q tambien soy nuevito en el mundo de delphi. Utilizo delphi 7 y MySQL, conectados por ODBC.
Mi problema surge intentar hacer una consulta.
Tengo un DBGrid (donde me mostrará la consulta) conectado a un DataSource y este a un Query. En el Query recibo por parametros el valor del TEdit.
La consulta se realiza con exito si pongo en el edit un apellido existente o el comienzo correcto de alguno, pero me salta un error cuando pongo a buscar un apellido q no existe en la DB.

Adjunto el codigo de la consulta por parametros y a continuacion de la consulta en MySQL

with Dm.Qape do
begin
ParamByName ('pape').Value:= ape.Text+'%';
ExecSQL;
Dm.Qape.Close;
Dm.Qape.Open;
end;


SELECT * FROM usuarios
WHERE apellido LIKE :pape


Espero haber sido muy claro y no repetitivo y q puedan contestar mi pregunta.
Muchas gracias.
Responder Con Cita
  #2  
Antiguo 13-11-2008
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola lucho1981,

Nunca he utilizado los ParamByName, pero si he utilizado mucho el LIKE, lo que tienes que hacer es lo siguiente:

Cambia el: ParamByName ('pape').Value:= ape.Text+'%';
por: ParamByName ('pape').Value := QuotedStr(ape.Text+'%');
Responder Con Cita
  #3  
Antiguo 13-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por olbeup Ver Mensaje
Cambia el: ParamByName ('pape').Value:= ape.Text+'%';
por: ParamByName ('pape').Value := QuotedStr(ape.Text+'%');
Hola, cuando se utiliza parametros ya no es necesario el QuotedStr (las comilllas).

Lo que veo en tu codigo es que utilizas ExecSql, esa sentencia solo se utiliza cuando haces cambios en tu BD, como tu estas haciendo una consulta, debes utilizar Open.

Código Delphi [-]
with Dm.Qape do
begin
 ParamByName ('pape').Value:= ape.Text+'%';
 Open;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 13-11-2008
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Smile Muchas gracias

Cita:
Empezado por olbeup Ver Mensaje
Hola lucho1981,

Nunca he utilizado los ParamByName, pero si he utilizado mucho el LIKE, lo que tienes que hacer es lo siguiente:

Cambia el: ParamByName ('pape').Value:= ape.Text+'%';
por: ParamByName ('pape').Value := QuotedStr(ape.Text+'%');
Muchas gracias olbeup por tu aporte, aunque no me sirvio para mi caso tu respuesta me sirvio mucho para aprender.


Muchas gracias Caro, me sirvio muchisimo tu ayuda. Es justo lo que estaba necesitando.
Responder Con Cita
  #5  
Antiguo 13-11-2008
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Exclamation Surgio otro problema

Hola amigos, resulta q ahora el error q tengo es que cuando en el evento onkeypress de un edit quisiera q me mostrara los apellidos de una tabla en un grid.
Lo primero q hago es validar para q solo escriban letras.
El problema es: cuando aprieto la letra "L" no me muestra nada, cuando presiono "A" me muestra todos los apellidos q comienzan con la L, cuando presiono una "M" me muestra todos los q comiencen con LA y asi.

Adjunto el codigo.

Código SQL [-]
procedure TFUsuarios.ApeKeyPress(Sender: TObject; var Key: Char);

begin
       Gape.Visible:=true;
       Gprincipal.Visible:=false;
       Dm.Qape.Close;

   if not(key in['a'..'z','A'..'Z',#8]) then
      begin
        key:=#0;
      end
   Else
      begin
        with Dm.Qape do
          begin
              ParamByName ('pape').Value:=ape.text+'%';
              Dm.Qape.Open;

          end;
       end;
  end;

Ojala q me puedan ayudar. algo seguro q estoy haciendo mal
Responder Con Cita
  #6  
Antiguo 13-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, tienes que utilizar el evento OnKeyUp de tu edit que es el momento en que sueltas la techa pero también puedes utilizar el evento OnChange de tu edit que se da cuando ha habido un cambio en tu Edit. Solo paar la parte de la busqueda, tu validación de que solo reciba letras lo puedes seguir haciendo en el OnKeypress.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 13-11-2008
lucho1981 lucho1981 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Tucuman-Argentina
Posts: 44
Poder: 0
lucho1981 Va por buen camino
Thumbs up Muchas gracias

Cita:
Empezado por Caro Ver Mensaje
Hola de nuevo, tienes que utilizar el evento OnKeyUp de tu edit que es el momento en que sueltas la techa pero también puedes utilizar el evento OnChange de tu edit que se da cuando ha habido un cambio en tu Edit. Solo paar la parte de la busqueda, tu validación de que solo reciba letras lo puedes seguir haciendo en el OnKeypress.

Saluditos

Muchas gracias Carito. Sos una genia y te ganaste mi respeto y cariño.

Saluditos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como mostrar una ventana con base al resultado de una busqueda Nelly Varios 3 02-02-2006 18:16:20
Validar datos MaskEdit Arkaz Varios 2 06-11-2005 22:57:03
Busqueda en base de access jjgongora Conexión con bases de datos 3 13-10-2005 18:27:13
Busqueda En Base de Datos Supermagayin Conexión con bases de datos 1 12-11-2003 22:32:12
busqueda en base de datos luigi Conexión con bases de datos 3 16-07-2003 02:36:45


La franja horaria es GMT +2. Ahora son las 18:23:37.


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