Заносит на диск текущую запись заданной рабочей области и обновляет все индексы, затрагиваемые этой операцией.
int _DBWrite(int workarea) int workarea; /* Рабочая область. */ |
Remarks
Всякий раз, когда указатель записи передвигается к другой записи, подобное обновление происходит автоматически. Если замены содержимого поля не произошло, _DBWrite( ) не выполняет никаких действий. _DBWrite( ) возвращает 0 в случае успешного завершения. В случае ошибки _DBWrite( ) возвращает отрицательное целое число, абсолютное значение которого равно номеру ошибки Visual FoxPro.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере выполняется _DBReplace( ) , использующая два параметра вызова: табличное поле (передается по ссылке) и значение соответствующего типа. Перед вызовом _DBWrite( ) и после него выполняется команда Visual FoxPro LIST NEXT 1.
Код Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO DBWRITE DO CreateTest GO 3 =DBWRITE( @ABC, "Replacement Record 1") 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
![]() | |
---|---|
#include <pro_ext.h> FAR Example(ParamBlk FAR *parm) { int RetValue; if (RetValue = _DBReplace(&parm->p[0].loc, &parm->p[1].val)) { _UserError("\n_DBReplace() failed"); } if (RetValue = _DBWrite(-1)) { _Error(-RetValue); } _Execute("LIST NEXT 1"); } FoxInfo myFoxInfo[] = { {"DBWRITE", (FPFI) Example, 2, "R,?"}, }; 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.