Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Clausula Like (https://www.clubdelphi.com/foros/showthread.php?t=44034)

JoseAntonio 26-05-2007 19:20:56

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?

ContraVeneno 26-05-2007 20:10:14

Código Delphi [-]
with TUQuery do begin
 Parameters.ParamByName('nnjobi').Value := '357'+'%';
 // O Dependiendo
 Parameters.ParamByName('nnjobi').Value := UnEdit.Text+'%';
end; //

JoseAntonio 26-05-2007 20:27:24

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 :confused:

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

ContraVeneno 26-05-2007 21:45:18

No puedes usar la cláusula LIKE con valores enteros.

Tendría que ser > ó < ó =

rruz 27-05-2007 07:26:21

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

JoseAntonio 27-05-2007 07:28:47

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!


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

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