Power Builder - Argumentos para un Retrieve

 
Vista:

Argumentos para un Retrieve

Publicado por Leandro (4 intervenciones) el 23/07/2004 17:35:33
Tengo una tabla con Codigo, Nombre, Apellido y Sueldo. Tengo que hacer un cuadro de búsqueda y los resultados mostrarlos en un DW. El problema es que tiene que ser con el operador LIKE, ya que me tiene que traer resultados aproximados también.
Pero cuando le configuro los valores para los argumentos me da un error. Por ejemplo, para el nombre usé un argumento de tipo String llamado ar_nombre, y en el campo Value puse esto:
'%' + :ar_nombre + '%'.
El código para buscar es éste:
dw_1.retrieve(sle_buscar.text).
Pero cuando hago la búsqueda me da el siguiente error:
Select error: SQL STATE = 37000
[Sybase][ODBC Driver]Syntax error: invalid expression near "'+:?+'"

¿A qué se debe?
Gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Argumentos para un Retrieve

Publicado por JAGC (169 intervenciones) el 23/07/2004 21:00:30
Probá agregando los \"%\" en tu variable y no en el DW
String texto

texto = \'%\' + sle_buscar.text + \'%\'
dw_1.Retrieve(texto) ... y en el value :
:ar_nombre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Argumentos para un Retrieve

Publicado por JAGC (169 intervenciones) el 23/07/2004 21:01:44
Probá agregando los "%" en tu variable y no en el DW
String texto

texto = "%" + sle_buscar.text + "%"
dw_1.Retrieve(texto) ... y en el value :
:ar_nombre

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Argumentos para un Retrieve

Publicado por Leandro (4 intervenciones) el 24/07/2004 10:24:10
Hice lo que me dijiste, lo que pasa es que tengo que usar cuatro filtros, y dos de ellos son numéricos, y cuando quiero buscar, por ejemplo, 12, no me trae resultados, pero con los textos funciona perfecto. Te paso el código del botón buscar:

string texto

texto = "%" + sle_buscar.text + "%"

dw_1.retrieve(integer(texto), texto, texto, integer(texto))

El primer argumento es código, el segundo es nombre, el tercero es apellido y el cuarto es sueldo. Los tipos de dato para los numéricos son
numeric (para el codigo) e integer (para el sueldo). ¿Está bien que se los pase como integer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Argumentos para un Retrieve

Publicado por AUGUSTO (44 intervenciones) el 25/07/2004 01:43:25
Si queres que te traiga valores aproximados para los campo código y sueldo que son numerico, entonces dichos argumentos en el dw deben estar definidos como string para de esta manera poder aplicar el 'like', y si ya los tenes definidos como estring, entonces no se los podes pasar como integer...
Espero te haya guiado!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Argumentos para un Retrieve

Publicado por JAGC (169 intervenciones) el 26/07/2004 14:34:41
Como dijo AUGUSTO el like es para los string, para los valores numéricos tenés que utilizar "=" o bien si queres traer valores aproximados "between" que equivale ">= y <=". Además, no se que valores manejas en sueldo pero si son montos relativamentes altos te convieve que sean "long" en ves de "integer"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Argumentos para un Retrieve

Publicado por Leandro (4 intervenciones) el 26/07/2004 17:29:25
Muchas gracias, ya lo hice y anuvo perfecto. Los sueldos son en pesos argentinos, así que es un sueldo devaluado, jaja, no hace falta un long.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar