_DBAppend( ) (Rutina de biblioteca API)
Intenta anexar un nuevo registro a la tabla abierta en el área especificada por el parámetro workarea.
int _DBAppend(int workarea, int carryflag)
int workarea; /* Work area number. */
int carryflag; /* SET CARRY setting. */
Observaciones
El área de trabajo actual se representa con – 1. _DBAppend( ) devuelve 0 si la rutina acaba con éxito. Si la rutina falla, _DBAppend( ) devuelve un entero negativo cuyo valor absoluto es el número de error de Visual FoxPro.
Valores para carryflag
Valor | Efecto |
---|---|
1 | Copia la información del registro previo en el nuevo registro. |
0 | Crea un nuevo registro en blanco. |
– 1 | Utiliza la configuración de SET CARRY para determinar si la información del registro anterior se copia en el nuevo registro. |
_DBAppend( ) realiza automáticamente cualquier bloqueo que sea necesario. Si no puede bloquear el encabezado del archivo, _DBAppend( ) falla y devuelve un número negativo cuyo valor absoluto corresponde a un número de error de Visual FoxPro.
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 utiliza _DBAppend( ) para anexar un registro a una tabla abierta en el área de trabajo actual.
Código Visual FoxPro
SET LIBRARY TO DBAPPEND
DO CreateTest
SET CARRY ON
= DBAPPEND(-1) && SET CARRY is ON, so carry
SET CARRY OFF
= DBAPPEND(1) && carry regardless of SET CARRY
= DBAPPEND(-1) && SET CARRY is OFF, so no carry
PROCEDURE CreateTest
CREATE TABLE test (ABC C(20))
APPEND BLANK
REPLACE ABC WITH "Golly month of"
APPEND BLANK
REPLACE ABC WITH "A twelfth of"
APPEND BLANK
REPLACE ABC WITH "Hello, world"
APPEND BLANK
REPLACE ABC WITH "When in the"
GO TOP
RETURN
Código C
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
int RetCode;
if ((RetCode = _DBAppend(-1, (int) parm->p[0].val.ev_long)) < 0) {
_Error(-RetCode);
}
}
FoxInfo myFoxInfo[] = {
{"DBAPPEND", (FPFI) Example, 1, "I"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Vea también
_DBLock( ) (Rutina de biblioteca API) | _DBUnlock( ) (Rutina de biblioteca API) | Anexar datos a una tabla existente | SET CARRY (Comando) | APPEND (Comando)