_DBReplace( ) (Rutina de biblioteca API)

_DBReplace( ) coloca un nuevo valor en un campo.

int _DBReplace(Locator FAR *fld, Value FAR *val)
Locator FAR *fld;            /* Field to be replaced. */
Value FAR *val;            /* Value to be placed in field. */

Observaciones

_DBReplace( ) devuelve 0 si el reemplazo tiene éxito. Si el reemplazo falla, _DBReplace( ) devuelve un número negativo cuyo valor absoluto corresponde a un número de error de Visual FoxPro. _DBReplace( ) puede utilizarse sobre un campo memo para reemplazar su valor con un nuevo valor que tenga menos de 65.000 bytes. Para realizar operaciones sobre campos memo que sean mayores de 65.000 bytes, debe utilizar rutinas directas de campo memo y rutinas de E/S con almacenamiento en búfer.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El siguiente ejemplo proporciona una funcionalidad similar a la del comando REPLACE de Visual FoxPro, pero reemplaza el valor de un solo registro a la vez.

Código Visual FoxPro

SET LIBRARY TO DBREPLAC
DO CreateTest
? DBREPLACE(@ABC, "Replacement record 1")
? DBREPLACE(@ABC, 2)  && returns -302 - field ABC is character field

PROCEDURE CreateTest
   CREATE TABLE test (ABC C(20))
   APPEND BLANK
   REPLACE ABC WITH "This is record 1"
   APPEND BLANK
   REPLACE ABC WITH "This is record 2"
   APPEND BLANK
   REPLACE ABC WITH "This is record 3"
   APPEND BLANK
   REPLACE ABC WITH "This is record 4"
   GO TOP
RETURN

Código C

#include <pro_ext.h>

FAR Example(ParamBlk FAR *parm)
{
   _RetInt(_DBReplace(&parm->p[0].loc, &parm->p[1].val), 10);
}

FoxInfo myFoxInfo[] = {
   {"DBREPLACE", (FPFI) Example, 2, "R,?"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_DBLock( ) (Rutina de biblioteca API) | _DBUnlock( ) (Rutina de biblioteca API) | REPLACE (Comando) | Acceso a la API de Visual FoxPro