Declaración de Tablas con *

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • tere90210
    Junior Member
    • abr
    • 17

    #1

    Declaración de Tablas con *

    Hola! Qué tal?

    Tengo un programa que declara tablas de la siguiente forma:

    TABLES: mara, msta,emara,t001k,mchb,mbew,makt,mard,mara1,
    mbewh, marv, mchbh,t134t,t001.

    TABLES: *mara, *msta,*emara,*t001k,*mchb,*mbew,*makt,*mard,
    *mara1,*mbewh, *marv, *mchbh,*t134t.


    Mi duda es: qué efecto tiene declarar nuevamente cada tabla y anteponer un * a cada una.

    Saludos,
    Tere Cristerna.
  • davidsap
    Member
    • abr
    • 85

    #2
    Joder, una vez si que lo ví en un programa y encontramos la explicación, pero ahora mismo no me acuerdo. No sé si era algo así como una especie de copia para hacer simulaciones. Es decir, que cuando hacías un insert por ejemplo, actuaba como si lo realizara pero al salir del programa realmente no efectuaba los cambios.

    A ver si alguien lo sabe y me refresca la memoria...
    Un saludo

    Comentario

    • tere90210
      Junior Member
      • abr
      • 17

      #3
      Sin solucion

      Hola a todos, sigo sin respuesta a mi duda y no he comprendido para que esta declarado la instruccion de este modo, y aparte me he topado codigo de selección que no se como o para que se usa, se los anexo, saludos.

      SELECT SINGLE * FROM *MBEWH WHERE MATNR = GVK_SELE-MATNR
      AND BWKEY = GVK_SELE-BWKEY
      AND BWTAR = GVK_SELE-BWTAR
      AND LFGJA = GVK_ANO
      AND LFMON = GVK_MES.

      Comentario

      • Vique
        Pregúntame por las Bolas Vique
        • mar
        • 146

        #4
        Buenas,
        yo he visto esas variables dentro de programas estandard. Se supone que son como una copia con los valores iniciales. Por ejemplo:
        Si estas en la transacción VA02,
        *vbak tendria los valores del pedido iniciales, y
        vbak seria la estructura en la que puedes modificar los campos y con los que al final se actualizaria el pedido.

        Espero a ver ayudado en algo.
        Un saludo.
        ¿Pero nadie me va a preguntar por las bolas Vique?

        Comentario

        • webraulmp
          Junior Member
          • jul
          • 28

          #5
          Hola,

          espero no equivocarme mucho pero creo que cuando se declara una tabla con el * delante, lo que ocurre es que estamos creando otro índice para acceder a la tabla de la base de datos, como si tuviéramos dos work areas sobre la misma tabla, con lo cual se puede acceder a la tabla con el WA normal (por ej. SELECT * FROM MARA INTO MARA...) o con el auxiliar (SELECT * FROM MARA INTO *MARA) con lo cual podríamos trabajar con el doble de información.
          Espero haber despejado las dudas.

          Comentario

          • davidsap
            Member
            • abr
            • 85

            #6
            Ya sé más o menos lo que es y para que se usa. Efectivamente cuando declaras una tabla con * es como si realizas una especie de copia de la tabla en otra zona de memoria.
            Esto sirve por ejemplo para que si estás en un bucle dentro de la tabla, puedas hacer una búsqueda a la tabla del * sin perder el índice de la 1ª, de tal forma que no se pierde el puntero y sigues en la misma línea, ya que sino podría dar problemas.

            Espero que se haya entendido lo que quiero decir.
            Un saludo

            Comentario

            • tere90210
              Junior Member
              • abr
              • 17

              #7
              Muchas gracias a todos por sus respuestas, fueron de gran ayuda para comprender el uso de estas tablas.

              Saludos,
              TC.

              Comentario

              • rodcomar
                Member
                • jun
                • 31

                #8
                ¿Y eso se puede hacer con tablas internas?

                Comentario

                Trabajando...