Power Builder - Porque funciona este codigo y en script no...

 
Vista:
Imágen de perfil de antonio
Val: 33
Ha disminuido su posición en 4 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Porque funciona este codigo y en script no...

Publicado por antonio (1247 intervenciones) el 11/02/2017 03:55:27
Un saludo a todos:

En un post anterior tengo este código:

[code]SELECT TRANSACCION_INV.FECHA_HORA_TRANSAC, TRANSACCION_INV.TIPO, TRANSACCION_INV.CANTIDAD,
ARTICULO.ARTICULO, ARTICULO.VOLUMEN,ARTICULO.TIPO, CLASIFICACION.DESCRIPCION, ARTICULO.CLASIFICACION_4
FROM (PMP.ARTICULO ARTICULO INNER JOIN PMP.TRANSACCION_INV TRANSACCION_INV ON
ARTICULO.ARTICULO=TRANSACCION_INV.ARTICULO) INNER JOIN PMP.CLASIFICACION CLASIFICACION ON
ARTICULO.CLASIFICACION_4=CLASIFICACION.CLASIFICACION
WHERE ARTICULO.TIPO='T' AND Year(TRANSACCION_INV.FECHA_HORA_TRANSAC ) >= 2015 AND
Year(TRANSACCION_INV.FECHA_HORA_TRANSAC) <= 2015 and TRANSACCION_INV.TIPO="V"
ORDER BY ARTICULO.CLASIFICACION_4;[code]

cuando lo corro en view y luego en interactive SQL si me recupera toda la información pero cuando creo una función y en el script pongo exactamente el mismo código, PowerBuilder manda un error y solo pone el mensaje : C0031 Syntax Error

¿Alguien puede ayudarme en esto para poder resolverlo?

Gracias
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

Porque funciona este codigo y en script no...

Publicado por FRANCISCO PORTALES (210 intervenciones) el 11/02/2017 12:54:30
Las funciones no te devuelven tablas, te devuelven un campo o un valor, no estas devolviendo un dato sino una tupla o varias. el resultado del select tendrías que vaciar a una variable que devolveras en el return de la funcion.
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
Imágen de perfil de Leonardo Daniel A.
Val: 848
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Porque funciona este codigo y en script no...

Publicado por Leonardo Daniel A. (376 intervenciones) el 12/02/2017 06:25:01
Hola... porque en PowerBuilder debes almacenar cada campo del Select en una variable

Ejemplo

1
2
3
4
string ls_nombre
integer li_clave
 
select clave, nombre into :li_clave from clientes where clave = 10 ;

eso para un registro.... pero si vas a procesar varios registros, deberas hacerlo con un cursor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DECLARE acctstat_curs CURSOR FOR
        SELECT ACCOUNT_STATUS, EXPIRY_DATE FROM DBA_USERS
                WHERE USERNAME = :as_userid;
 
OPEN acctstat_curs ;
 
// Obttienes el primer registro
FETCH acctstat_curs INTO :as_currentstatus, :ad_expirydate;
 
do while sqlca.sqlcode=0   //recorrer los registros
     haces lo que tengas que hacer
 
      // Obttienes el siguiente registro
       FETCH acctstat_curs INTO :as_currentstatus, :ad_expirydate;
loop
 
 
//cierras el cursor
CLOSE acctstat_curs;
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