Progress - Buffer .... (recid)

   
Vista:

Buffer .... (recid)

Publicado por Afrika (48 intervenciones) el 15/01/2008 21:47:42
Alguien me puede decir por favor que quiere decir la linea de código del FIND (por supuesto!) especificamente que hace alli el RECID!!?

DEFINE BUFFER bCcDocume FOR CcDocume.

FIND bCcDocume WHERE RECID(bCcDocume) = RECID(CcDocume) EXCLUSIVE-LOCK NO-ERROR.
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

RE:Buffer .... (recid)

Publicado por Miguel Angel (140 intervenciones) el 15/01/2008 22:53:44
Lo que hace el RECID es leer una tabla en base a un número de registro generado por PROGRESS. Cuando das de alta un registro en una tabla, PROGRESS lleva un consecutivo y le da un número de identificación único. De tal manera que en base a ese número de identificador puedas acceder al registro de una tabla.

Por ejemplo, si doy de alta un registro en la tabla xxuno_mstr y quisiera, posteriormente leer ese mismo dato, pero accesandolo por medio de su identificador de registro, entonces haría lo siguiente:

DEF VAR lv-recid AS RECID. /* Creo variable que contenga el identificador. */

CREATE xxuno_mstr.
ASSIGN xxuno_llave = "unico".
xxuno_campo = "A"
xxuno_campo = "B"
lv-recid = RECID(xxuno_mstr). /* Guardo el ID que se genera */

FOR EACH xxotra_tabla NO-LOCK:
.
.
.
FIND xxuno_mstr WHERE RECID(xxuno_mstr) = lv-recid NO-LOCK NO-ERROR.
/* Por último leo el registro que guarde anteriormente */

Lo anterior sería lo mismo a guardar en lugar de recid la llave de la tabla a buscar:

DEF VAR lv-llave LIKE xxuno_llave.

CREATE xxuno_mstr.
ASSIGN xxuno_llave = "unico"
xxuno_campo = "A"
xxuno_campo = "B"
lv-llave = xxuno_llave.

FOR EACH xxotra_tabla NO-LOCK:
.
.
.
FIND xxuno_mstr WHERE xxuno_llave = lv-llave NO-LOCK NO-ERROR.

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

RE:Buffer .... (recid)

Publicado por cesar (2 intervenciones) el 06/02/2008 21:00:32
el RECID en una tabla es el identificador interno unico del registro, asi es que en vez de igualar el find a un campo del registro como un bCcDocume.Iddocume se estan refiriendo al identificador del registro cuya busqueda es mas segura.
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