DbRecBuf
DbRecBuf
Datensatzpuffer
Details
- Typ:
handle - Siehe: Liste , Objekte , Datensatzpuffer , Datensatzpuffer in MDI-Frames (Blog)
Die Abfrage der Eigenschaft kann prozedural erst im EvtCreated des Objektes oder des übergeordneten Objektes erfolgen. Davor wird immer 0 zurückgegeben.
Die Eigenschaft DbRecBuf hat je nach Objekt folgende Bedeutung:
- MDI-Anwendungsfenster Über diese Eigenschaft kann ein Datensatzpuffer für ein oder mehrere Dateien erstellt werden. Der Datensatzpuffer wird automatisch von dem MDI-Anwendungsfenster verwaltet. Mit Hilfe der Puffer ist es möglich, dass in jedem MdiFrame -Objekt mit normalen Datensatzoperationen und Feld-Puffern gearbeitet werden kann, ohne das sich gleichartige MdiFrame -Objekte gegenseitig beeinflussen. Ist diese Eigenschaft gesetzt, wird der Inhalt des Feldpuffers der angegebenen Dateien gesichert und zum gegebenen Zeitpunkt wieder hergestellt. Wird ein neues MDI-Fenster an ein AppFrame -Objekt angehängt, stehen erst nach dem Befehl
WinAdd ()oderWinAddByName ()die Feldpuffer des MDI-Fensters zur Verfügung. Die Vorbelegung der Feldpuffer muss also nach dem Anhängen des MDI-Fensters erfolgen und nicht imEvtInitdes MDI-Fensters. - RecList Wird ein RecList -Objekt neu gezeichnet (zum Beispiel durch
WinUpdate ()), wird ebenso der Datensatzpuffer der betreffenden Datei verändert. Die in dieser Eigenschaft angegebenen Datensatzpuffer werden vor dem Update der RecList gesichert und anschließend wieder hergestellt. Dies ist auch dann der Fall, wenn in dem EreignisEvtLstSelectdas Lesen eines Datensatzes stattfindet. Soll der Datensatzpuffer des in diesem Ereignis gelesenen Datensatzes erhalten bleiben, muss der Datensatzpuffer in den Puffer der RecList mit dem BefehlWinUpdate ()und der Option_WinUpdFld2Bufübertragen werden.
Die Eigenschaft kann innerhalb einer Prozedur ausgelesen werden, um den Datensatzpuffer des Objekts zu ermitteln. Dazu muss die Nummer der Datei als Parameter angegeben werden. Besitzt das Objekt keinen Datensatzpuffer der angegebenen Datei, wird 0 zurückgegeben, sonst der Deskriptor des Puffers.
Beispiel:
tHdlBuf # aEvt:Obj->wpDbRecBuf(tblCstCustomer);
if (tHdlBuf > 0)
{
...
}
Prozedural kann ein Datensatzpuffer mit dem Wert 1 aktiviert und mit dem Wert 0 deaktiviert werden. Die Angabe eines Datensatzpuffers führt zum Laufzeitfehler _ErrValueInvalid. Zusätlich muss als Parameter der Eigenschaft die Dateinummer übergeben werden. Die Dateinummer muss im Bereich von 1 bis 1000 liegen. Außerhalb des Bereichs wird ebenfalls der Laufzeitfehler _ErrValueInvalid ausgelöst. Liegt die Dateinummer innerhalb des Bereichs, existiert jedoch keine Datei mit der Nummer, kommt der Laufzeitfehler _ErrFileInvalid.
Beispiele:
// Aktivieren des Datensatzpuffers für die Datei tblCstCustomer
aEvt:Obj->wpDbRecBuf(tblCstCustomer) # 1;
// Deaktivieren des Datensatzpuffers für die Datei tblCstCustomer
aEvt:Obj->wpDbRecBuf(tblCstCustomer) # 0;
Wird der Parameter der Eigenschaft weggelassen, wird der Laufzeitfehler _ErrValueInvalid ausgelöst.
Ein ermittelter Datensatzpuffer kann nicht mit RecBufDestroy () entfernt werden. Die Anweisung liefert keinen Fehler zurück, sondern wird ignoriert.