Problema WindowBuilder y funciones de MySQL

Estoy iniciándome en windowbuilder.

Estoy tratando de llamara a la función Max desde el evento clic de un botón y obtengo un error de compilación que dice que la función no existe, ya estuve buscando y probé sin espacios sin resultados.

Por otra parte vi que en algunos lados decían que hay que poner {} en la función y efectivamente compila, pero a la hora de ejecutarlo dice que trae más de un resultado cuando en mysql trae bien.

Si pudieran ayudarme se los agradecería.

Error de compilación:

SELECT Max(PD_id) INTO :li_pd_id FROM PEDIDO USING SQLCA;

El que compila pero tira mas de un resultado:

SELECT {Max(PD_id)} INTO :li_pd_id FROM PEDIDO USING SQLCA;

1 respuesta

Respuesta
1

También me he encontrado con este error usando powerbuilder con mysql.

La solución que encontré fue esta:

Crear una función "f_ejecuta_select" con los siguientes parámetros:

string sqlsentencia

transaction objeto_transaccion

retorna: LONG

y pega alli el siguiente codigo:

LONG ll_retorno
SetPointer ( HourGlass! )
/* Declara el cursor dinámico */
DECLARE cDynCursor DYNAMIC CURSOR FOR SQLSA;
/*Prepara el Descriptor*/
PREPARE SQLSA FROM :SQLSentencia USING objeto_transaccion;
DESCRIBE SQLSA INTO SQLDA;
/* Abre el cursor Dinámico */
OPEN DYNAMIC cDynCursor USING DESCRIPTOR SQLDA;
IF ( objeto_transaccion.SQLCode = -1 ) THEN /* Error ? */
    GOTO ERROR_SQL
END IF
/* Obtiene el primer registro del cursor dinamico */
FETCH cDynCursor  INTO :lll_retorno;
IF ( objeto_transaccion.SQLCode = -1 ) THEN /* Error ? */
    GOTO ERROR_SQL
ELSE
    GOTO ERROR_SQL
END IF
CLOSE cDynCursor;
SetPointer ( Arrow! )
RETURN ll_retorno
    ERROR_SQL:
        MESSAGEBOX("f_ejecuta_select() - Error", objeto_transaccion.SQLErrtext+'~R~R'+sqlsentencia, StopSign! )
        ROLLBACK USING objeto_transaccion;
        HALT CLOSE

luego llamas a la función:

LONG ll_max_pd_id
ll_max_pd_id = f_ejecuta_select("SELECT Max(PD_id) FROM PEDIDO",sqlca)

así quedaría resuelto.

¡Gracias por la respuesta! Pude resolver el problema, Tenia un driver instalado por defecto en la maquina que yo no conocía, al instalar otra versión del ODBC esto me genero conflictos.

Tuve que borrar el driver y volverlo a instalar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas