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
Question Sentecia Like

hola que tal, alguno de ustedes sabe como utilizar la sentencia LIKE ?? no encuentro la forma de aplicarla, segun es :

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)+'%'');
pero pues no mas dice que:
Código Delphi [-]
')' Expected  but identifier '_' found
Responder Con Cita
  #2  
Antiguo 10-10-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por JcTaztoman Ver Mensaje
hola que tal, alguno de ustedes sabe como utilizar la sentencia LIKE ?? no encuentro la forma de aplicarla, segun es :


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)+'%'');



pero pues no mas dice que:

Código Delphi [-]')' Expected but identifier '_' found

Hola JcTaztoman... te recomiendo que pases por guia de estilo...

con respecto a tu consulta,. falta que definas en que estas trabajando.. Delphi,,, y Motor de Base de datos.. (puede que cambie de un motor a otro)

yo tengo esta que funciona con D7 e Interbase

Código SQL [-]
Select * From Proveedor
Where Pro_Razon Like+QuotedStr('%'+vBus.Text+'%')



espero que te sirva
__________________
BlueSteel
Responder Con Cita
  #3  
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 por contestar

ok, checaré la guia de estilo, aunq no veo cual fue mi error al escribir el post anterior, bueno solo que no puse que estoy utilizando, jeje

bueno utilizo Delphi 7 y PostgreSql 7

Gracias!
Responder Con Cita
  #4  
Antiguo 10-10-2007
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, 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+'%')');
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 10-10-2007 a las 19:05:08.
Responder Con Cita
  #5  
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
  #6  
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
  #7  
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
  #8  
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
  #9  
Antiguo 11-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
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
  #10  
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
  #11  
Antiguo 11-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
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
  #12  
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
Thumbs up gracias de nuevo

estoy usando postgresql, ya se resolvio este problema que tenia, y pues ya funciona lo que me pidieron todo era porq tenia el autoacompletar la tabla.

Gracias todos.

Código Delphi [-]
consulta:= 'select substr(e.serie,length(e.serie)-5,6),c.name as nombre_negocio,c.contact as nombre_propietario,r.nombre as nombreruta,l.nombre as nombrelocalidad ';
consulta:=consulta+',c.address1,c.address2, es.nombre as nombrees, eq.producto, u.nombre as unombre';
consulta:=consulta+',cre.credito_solicitado,cre.fechahora_respuesta,sa.saldo';
consulta:=consulta+' from posiciones2 p,rutas r, localidad l,customer c, equipos e,ensambles en,tipo_equipo eq,usuarios u,estados es,creditos cre,saldos sa';
consulta:=consulta+' where p.id_ruta=r.id_ruta and r.id_localidad=l.id_localidad and p.id_customer=c.id ';
consulta:=consulta+'and p.id_ensamble=en.id_ensamble and l.id_estado=es.id_estado and en.id_equipo=e.id_equipo ';
consulta:=consulta+'and p.id_posicion=sa.id_posicion and p.id_posicion=cre.id_posicion ';
consulta:=consulta+'and e.id_tipo_equipo=eq.id_tipo_equipo and e.serie like'+quotedStr('%'+Enumcliente.text)+' order by fechahora_respuesta';

ahi esta el codigo como quedó


nuevamente, Muchas 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 02:59:50.


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