SoloCodigo
Programación General => Power Builder => Mensaje iniciado por: lazy en Lunes 3 de Mayo de 2010, 21:35
-
Alguien sabe si existe alguna forma de concatenarle un string a un retrieval argument en un select de un datawindow?
Algo asi es lo que me gustaria escribir pero me tira error :P
SELECT *
FROM tabla
WHERE columna LIKE ('_' + :camp + '%')
(estoy usando PB7 y Sybase ASA 7)
-
Hola.
Creo que el error lo tienes en '_' + :camp + '%'
Lo que tienes que hacer es montar la datawindow
Select * from tabla where columna like :arg
y posteriormente en código
dw_1.retrieve ('_' + ls_valor + '%')
Ah! y cuidado con que ls_valor no tenga un solo '%' porque si es así el retrieve fallará y te echará de la aplicación. (¡creo!)
-
Gracias por la respuesta davidmolina1, en general lo hacia de esa forma (como en tu post).
Perdón, me expresé mal. Lo que quiero hacer es algo tipo:
SELECT *
FROM tabla
WHERE columna1 LIKE ('_' + :camp + '%') OR columna2 LIKE ('__' + :camp + '%')
(puede tener 1 o 2 caracteres al principio y luego el "camp")
Entonces tendréa que pasarle 2 argumentos casi idénticos ('_' + :camp + '%') y ('__' + :camp + '%'). Estaba buscando la forma de hacerlo con un solo argumento, pero no encontré nada :(
-
Yo tampoco veo como hacerlo.
No me preocuparía por el número de argumentos.
Otra solución sería extraer la SQL mediante un Describe ('datawindow.table.select'), luego componerla en código y volver a ponerla con un Modify ('Datawindow.table.select = '+ls_select).
De esa forma no tienes que pasar ningún retrieve ya que las clausulas se montan en código. simplemente haces un retrieve () y listo.
saludos.