Пытается добавить новую запись в конец таблицы, открытой в заданой рабочей области workarea.
int _DBAppend(int workarea, int carryflag) int workarea; /* Номер рабочей области. */ int carryflag; /* Установка SET CARRY. */ |
Замечания
Текущая рабочая область представляется значением -1. _DBAppend( ) возвращает 0 при успешном завершении. Если попытка оказалась неудачной, _DBAppend( ) возвращает отрицательное целое число, абсолютное значение которого равняется номеру ошибки Visual FoxPro.
Значение | Действие |
---|---|
1 |
Переносит информацию из предыдущей записи в новую. |
0 |
Делает новую запись пустой. |
- 1 |
Определяет необходимость переноса информации из предыдущей записи в новую согласно установке SET CARRY. |
_DBAppend( ) автоматически выполняет все необходимые блокировки. Если не удается блокировать заголовок файла, _DBAppend( ) завершается неудачно и возвращает отрицательное целое число, абсолютное значение которого равняется номеру ошибки Visual FoxPro.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к Visual FoxPro API.
Пример
В следующем примере _DBAppend( ) используется для добавления записи в конец таблицы, открытой в текущей рабочей области.
Код Visual FoxPro
Copy 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
Copy 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 }; |
Смотрите также
c Microsoft Corporation. All rights reserved. Microsoft is not reponsible for the contents of the translated help topics.