Freigeben über


_DBAppend( ), API-Bibliotheksroutine

Versucht, an die im workarea angegebenen Arbeitsbereich geöffnete Tabelle einen neuen Datensatz anzuhängen.

int _DBAppend(int workarea, int carryflag)
int workarea;               /* Work area number. */
int carryflag;               /* SET CARRY setting. */

Hinweise

Der aktuelle Arbeitsbereich wird durch -1 dargestellt. _DBAppend( ) gibt 0 zurück, wenn die Routine erfolgreich ausgeführt wurde. Konnte die Routine nicht erfolgreich ausgeführt werden, gibt _DBAppend( ) eine negative ganze Zahl zurück, deren absoluter Wert eine Visual FoxPro-Fehlernummer darstellt.

Werte für das Übertragungsattribut carryflag

Value Auswirkung
1 Überträgt Informationen aus dem vorherigen Datensatz in den neuen Datensatz.
0 Führt dazu, dass der neue Datensatz leer ist.
– 1 Verwendet die Einstellung von SET CARRY, um festzulegen, ob die Informationen aus dem vorherigen Datensatz in den neuen Datensatz übertragen werden.

_DBAppend( ) führt alle erforderlichen Sperrungen automatisch durch. Kann der Vorspann der Datei nicht gesperrt werden, so gibt _DBAppend( ) eine negative ganze Zahl zurück, deren absoluter Wert eine Visual FoxPro-Fehlernummer darstellt.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Im folgenden Beispiel wird mit _DBAppend( ) ein Datensatz an die im aktuellen Arbeitsbereich geöffnete Tabelle angehängt.

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
};

Siehe auch

_DBLock( ), API-Bibliotheksroutine | _DBUnlock( ), API-Bibliotheksroutine | Anfügen von Daten an vorhandene Tabellen | SET CARRY-Befehl | APPEND-Befehl