_DBAppend( ) API Library Routine
Attempts to append a new record to the table open in the specified workarea.
int _DBAppend(int workarea, int carryflag)
int workarea; /* Work area number. */
int carryflag; /* SET CARRY setting. */
Remarks
The current work area is represented by – 1. _DBAppend( ) returns 0 if the routine is successful. If the routine fails, _DBAppend( ) returns a negative integer whose absolute value is a Visual FoxPro error number.
Values for
Value |
Effect |
---|---|
1 |
Carries information from the previous record into the new record. |
0 |
Makes the new record blank. |
– 1 |
Uses the setting of SET CARRY to determine whether information from the previous record is carried to the new record. |
_DBAppend( ) automatically performs any necessary locking. If it's unable to lock the file header, _DBAppend( ) fails and returns a negative integer whose absolute value is a Visual FoxPro error number.
For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.
Example
The following example uses _DBAppend( ) to append a record to the table open in the current work area.
Visual FoxPro Code
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 Code
#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
};
See Also
Tasks
How to: Append Data to Existing Tables
Concepts
Reference
_DBLock( ) API Library Routine
_DBUnlock( ) API Library Routine