Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2007
Avatar de JcTaztoman
JcTaztoman JcTaztoman is offline
Miembro
 
Registrado: ago 2007
Ubicación: Cancun
Posts: 15
Poder: 0
JcTaztoman Va por buen camino
Red face Gracias

Cita:
Empezado por Caro Ver Mensaje
Hola, tu comodin _ tiene que estar tambien entre comillas.

Código SQL [-]sql.add('where p.id_franquicia=f.id_franquicia and p.id_ruta=r.id_ruta and e.serie LIKE '+quotedstr('_'+Enumcliente.Text+'%')');
Gracias Carol, ya lo probé, no me marca error ni nada por el estilo, ahora es un error creo q con el componente Zeos el Zquery, ya que despues de agregar toda la sentencia SQL tengo un if, para comprobar que no esta vacia la sentencia, pero me la marca como vacia y pues ya no hace lo que le pido, y si le quito el if me marca

Código:
EvariantTypeCastError Could not convert variant of type (Null) to (string)
ahora no se que hacer, no se si sea el componente, o delphi o q cosa rara! jeje si alguno sabe le pido ayuda.

Gracias.
Responder Con Cita
  #2  
Antiguo 10-10-2007
Avatar de JcTaztoman
JcTaztoman JcTaztoman is offline
Miembro
 
Registrado: ago 2007
Ubicación: Cancun
Posts: 15
Poder: 0
JcTaztoman Va por buen camino
Talking upss

aqui esta el codigo que estoy usando:

Código Delphi [-]
with ZQuery1 do
    begin
      if active then Close;
      sql.Clear;
      sql.add('select p.id_posicion,e.serie from posiciones2 p,equipos e');
      sql.add('where e.serie like %'+quotedStr(Enumcliente.text));
      Open;
      label1.Caption := zquery1.SQL.Text;//para mostrar lo que tiene la sentencia


          If not zquery1.IsEmpty Then  // hace esta comprobacion y no ejecuta lo que viene enseguida, y si muestra todo el contenido en label1
             Begin
               label1.Caption := zquery1.FieldValues['id_posicion'];
               end;

bueno si alguien puede ayudarme, lo agradecere mucho
Responder Con Cita
  #3  
Antiguo 10-10-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
el error es que la sintaxis de la sentencia está mal. El simbolo % debe estar dentro de la cadena por la que busca el like

El resultado de tu codigo , suponiendo que el valor de enumcliente se AB, sería: where e.serie like %'AB' -> esto no lo entiende el analizador del SQL

El resultado de mi código sería: where e.serie like '%AB'

Código Delphi [-]
with ZQuery1 do
    begin
      if active then Close;
      sql.Clear;
      sql.add('select p.id_posicion,e.serie from posiciones2 p,equipos e');
      sql.add('where e.serie like '+quotedStr('%'+Enumcliente.text));
      Open;
      label1.Caption := zquery1.SQL.Text;//para mostrar lo que tiene la sentencia


          If not zquery1.IsEmpty Then  // hace esta comprobacion y no ejecuta lo que viene enseguida, y si muestra todo el contenido en label1
             Begin
               label1.Caption := zquery1.FieldValues['id_posicion'];
               end;

Espero haberte ayudado.
Ya nos comnetarás.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 10-10-2007
Avatar de JcTaztoman
JcTaztoman JcTaztoman is offline
Miembro
 
Registrado: ago 2007
Ubicación: Cancun
Posts: 15
Poder: 0
JcTaztoman Va por buen camino
gracias [fjcg02]

Si ya probé con el operador dentro de la sentecia del quotedstr, y de igual forma no hace nada. ya no se que sea, creo yo un problema con el componente Zquery, pero pues no he podido ubicarlo. seguiré probando.

Gracias por contestar, y si alguien mas sabe, le agradeceré que comente
Responder Con Cita
  #5  
Antiguo 11-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿qué base de datos usas?
el campo e.serie ¿como está definido en la base de datos? ¿número?, ¿texto?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 11-10-2007
Avatar de JcTaztoman
JcTaztoman JcTaztoman is offline
Miembro
 
Registrado: ago 2007
Ubicación: Cancun
Posts: 15
Poder: 0
JcTaztoman Va por buen camino
Smile hola Lepe (Resuelto)

pues si, el problema es con los campos de la base de datos, el que la creó hizo que ese campo despues de ingresar la serie se acompletara los espacios hasta llegar a 20 digitos, y pues por eso no funcionaba la sentencia, ese era el problema.

Gracias a Todos por ayudar!!

Responder Con Cita
  #7  
Antiguo 11-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Aps, pues entonces es un campo Char(20) que tiene ese comportamiento (añadir espacios hasta completar el tope).

Si usas Firebird, (que me parece que sí), puedes usar esto otro:
Código Delphi [-]
 sql.add('where e.serie containing '+ QuotedStr(Enumcliente.text);

Así no tienes que usar el comodin del tanto por ciento, y además busca tanto en mayúsculas como en minúsculas (con Like se busca teniendo en cuenta las mayúsculas que escribas en el Edit).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Ejecutar sentecia SQL Novato SQL 2 09-10-2005 07:02:02


La franja horaria es GMT +2. Ahora son las 11:23:07.


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