_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