Problemas con EXEC SQL

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • dea_cba87
    Junior Member
    • may
    • 21

    #1

    Problemas con EXEC SQL

    Tengo los 2 siguientes programas de prueba, los cuales solon varian en el uso o no de una variable:

    ...
    open dbcursor for
    SELECT *
    FROM PA0002
    WHERE pernr = 00000011.
    ...

    Programa 1
    DATA: l_s TYPE i,
    st TYPE string,
    lv_pernr TYPE persno,
    ls TYPE pa0002,
    lt TYPE STANDARD TABLE OF pa0002.

    CLEAR l_s.

    lv_pernr = 00000011.

    TRY.

    exec sql.
    open dbcursor for
    SELECT *
    FROM PA0002
    WHERE pernr = 00000011.
    endexec.

    DO.
    EXEC SQL.
    FETCH NEXT dbcursor INTO :ls
    ENDEXEC.
    IF sy-subrc EQ 0.
    APPEND ls TO lt.
    ELSE.
    exit.
    ENDIF.
    ENDDO.

    EXEC SQL.
    CLOSE dbcursor
    ENDEXEC.

    CATCH CX_SY_NATIVE_SQL_ERROR.
    WRITE 'E'.

    ENDTRY.

    DESCRIBE TABLE lt LINES l_s.
    WRITE l_s.
    Programa 2
    DATA: l_s TYPE i,
    lv_pernr,
    ls TYPE pa0002,
    lt TYPE STANDARD TABLE OF pa0002.

    CLEAR l_s.

    lv_pernr = 00000011.

    TRY.

    exec sql.
    open dbcursor for
    SELECT *
    FROM PA0002
    WHERE pernr = :lv_pernr.
    endexec.

    DO.
    EXEC SQL.
    FETCH NEXT dbcursor INTO :ls
    ENDEXEC.
    IF sy-subrc EQ 0.
    APPEND ls TO lt.
    ELSE.
    exit.
    ENDIF.
    ENDDO.

    EXEC SQL.
    CLOSE dbcursor
    ENDEXEC.

    CATCH CX_SY_NATIVE_SQL_ERROR.
    WRITE 'E'.

    ENDTRY.

    DESCRIBE TABLE lt LINES l_s.
    WRITE l_s.
    El primer programa se ejecuta correctamente, pero el segundo no. Alguien sabria el porque?

    Muchas gracias.
  • felipe.carrales
    Junior Member
    • may
    • 4

    #2
    Lo que se me ocurre es declarar la variable lv_pernr asi:


    TABLES PA0002.
    DATA lv_pernr like PA0002-pernr.



    ya despues le pasas el valor y debe funcionar.


    Saludos.

    Comentario

    • dea_cba87
      Junior Member
      • may
      • 21

      #3
      No... me sigue lanzando un dump :S

      Comentario

      Trabajando...