MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Declaración de Tablas con * (foro/showthread.php?t=5286)

tere90210 08/05/07 17:32:22

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.:confused:

Saludos,
Tere Cristerna.

davidsap 09/05/07 11:11:18

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...

tere90210 09/05/07 21:20:16

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.

Vique 10/05/07 08:57:55

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.

webraulmp 10/05/07 09:33:42

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.

davidsap 10/05/07 10:58:40

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.

tere90210 10/05/07 16:35:58

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

Saludos,
TC.

rodcomar 22/05/07 09:45:43

¿Y eso se puede hacer con tablas internas?


Husos Horarios son GMT. La hora en este momento es 11:06:32.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web