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 26-05-2007
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 19
JoseAntonio Va por buen camino
Clausula Like

HOla, tengo problemas al ejecutar una sentencia sql desde un TADOQuery, la sentencia es muy larga por lo que no es muy vistoso estar insertando linea por linea con Add cada parte de la sentencia en la propiedad SQL

Código SQL [-]
select muchoscampos... from muchastablas where tjobi.numerojobi like :nnjobi and muchascondiciones

el problema surje por que el parametro :nnjobi es del tipo entero, y cuando lo agrego, la sentencia sql no trabaja bien por que ese parametro necesita estar en el formato '357%' para que funcione, es decir encerrado en comillas y finalisado por un signo %, alguien sabe como solucionar eso?
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
Responder Con Cita
  #2  
Antiguo 26-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código Delphi [-]
with TUQuery do begin
 Parameters.ParamByName('nnjobi').Value := '357'+'%';
 // O Dependiendo
 Parameters.ParamByName('nnjobi').Value := UnEdit.Text+'%';
end; //
__________________

Responder Con Cita
  #3  
Antiguo 26-05-2007
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 19
JoseAntonio Va por buen camino
Gracias por la ayuda ContraVeneno, pero cuando pongo ese codigo (la segunda opcion puesto que el numero de jobi nnnjobi es tipeado en un edit) me sale un error en tiempo de ejecucion: La aplicacion utiliza un tipo no valido para la operacion actual

Cita:
Empezado por ContraVeneno
Código Delphi [-]
with TUQuery do begin
Parameters.ParamByName('nnjobi').Value := '357'+'%';
// O Dependiendo
Parameters.ParamByName('nnjobi').Value := UnEdit.Text+'%';
end; //
vale decir que el parametro que uso es del tipo entero ftinteger y el motor es sql server
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
Responder Con Cita
  #4  
Antiguo 26-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
No puedes usar la cláusula LIKE con valores enteros.

Tendría que ser > ó < ó =
__________________

Responder Con Cita
  #5  
Antiguo 27-05-2007
Avatar de rruz
[rruz] rruz is offline
Miembro Premium
 
Registrado: jun 2006
Posts: 146
Poder: 18
rruz Va por buen camino
Cita:
Empezado por JoseAntonio
HOla, tengo problemas al ejecutar una sentencia sql desde un TADOQuery, la sentencia es muy larga por lo que no es muy vistoso estar insertando linea por linea con Add cada parte de la sentencia en la propiedad SQL

Código SQL [-]select muchoscampos... from muchastablas where tjobi.numerojobi like :nnjobi and muchascondiciones


el problema surje por que el parametro :nnjobi es del tipo entero, y cuando lo agrego, la sentencia sql no trabaja bien por que ese parametro necesita estar en el formato '357%' para que funcione, es decir encerrado en comillas y finalisado por un signo %, alguien sabe como solucionar eso?
JoseAntono porque no reformulas tu sql y haces algo asi?
select muchoscampos... from muchastablas where convert(char(20),tjobi.numerojobi) like :nnjobi and muchascondiciones

Saludos
Responder Con Cita
  #6  
Antiguo 27-05-2007
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 19
JoseAntonio Va por buen camino
Cita:
Empezado por rruz
JoseAntono porque no reformulas tu sql y haces algo asi?
select muchoscampos... from muchastablas where convert(char(20),tjobi.numerojobi) like :nnjobi and muchascondiciones

Saludos
MUy interesante propuesta rruz, la verdad que habia pensado que SQL podria tener alguna funcion para convertir tipos de datos pero no me habia atrevido a buscar, ese truco me va a ser de gran ayuda!
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
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
Clausula LIKE federiconqn21 SQL 3 28-12-2005 15:49:13
Delete sin clausula where Fita Conexión con bases de datos 2 06-07-2005 01:35:04
Clausula order by C1, C2 desc Jack Firebird e Interbase 3 05-11-2004 20:29:22
Usando la cláusula LIKE mlara Firebird e Interbase 1 10-06-2003 06:12:01
Clausula UNION TJose Firebird e Interbase 3 15-05-2003 20:59:56


La franja horaria es GMT +2. Ahora son las 18:05:31.


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