_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