Versionen im Vergleich
Schlüssel
- Diese Zeile wurde hinzugefügt.
- Diese Zeile wurde entfernt.
- Formatierung wurde geändert.
Inhalt |
---|
Auszug |
---|
Liest einen Datensatz aus der Tabelle und übergibt die Feldinhalte an die entsprechenden Merkmale |
.
Prototype
Codeblock |
---|
int LiesTab(Tabelle;Felder...) |
Parameter
Parameter | Beschreibung |
---|---|
Tabelle | Name der zu lesenden Tabelle (Zeichenkette ohne Hochkommas) |
Felder | variable Anzahl Felder-Parameter (Merkmalsnamen) |
Rückgabewert
Datenbank-Status (FetchStatus vom Lesen des Datensatzes). 0 ist OK, alles andere deutet auf einen Fehler hin.
Hinweise
- Die Funktion ermittelt zunächst Anzahl und Position der Schlüsselfelder der übergebenen Tabelle. Stehen in einer Tabelle die Schlüsselfelder beispielsweise an erster und zweiter Stelle, dann wird auf die Werte der Feld-Merkmale an erster und zweiter Stelle des Funktionsaufrufs eingeschränkt. Der Mandant (Feld "finr") muss hier nicht berücksichtigt werden, er wird automatisch auf den aktuellen Mandanten eingeschränkt.
- Schlüsselfelder können nicht gelesen werden, sie können nur eingeschränkt werden. Will man dennoch Werte aus Schlüsselfeldern ermitteln, so muss dies über eine Zwischentabelle erfolgen, die zunächst mit einem passenden SQL-Statement über die Funktion ExecSql befüllt wird, um anschließend mit LiesTab ausgelesen zu werden. Alternativ kann auch ein Lua-Script eingesetzt weden; Hier können auch Schlüsselfelder gelesen werden (z.B. mit der Funktion SQL_Select).
- Wird für ein Schlüsselfeld kein Wert übergeben (kein Merkmal, das einen Wert enthält), wird dieses auf Blank ("") bzw. auf 0 eingeschränkt.
- Die Felder müssen nur bis zu dem letzten zu lesenden Feld angegeben werden.
- Wenn kein Datensatz gefunden wird, werden die übergebenen Nicht-Schlüsselfeld-Merkmale auf Blank (" ") gesetzt.
Beispiel
Es sollen Vorname und Nachname der Person, deren Kürzel im Merkmal "persnr" enthalten ist, ermittelt werden und in die Merkmale "vn" und "nn" geschrieben werden. Die Tabelle, die die benötigten Informationen enthält, ist die gpktab.
Nun muss zunächst die Tabellenstruktur und insbesondere die Position der Schlüsselfelder ermittelt werden. Die Information findet sich im Dialog DBA10 in der Ansicht "Tabellen": Die Tabelle "gpktab" hat zwei Schlüsselfelder: "finr" und "perseh". Der Mandant ("finr") darf nicht mit einbezogen werden, also bleibt noch genau ein Schlüsselfeld an erster Stelle. Die gesuchten Felder ("vname" und "nname") finden sich an Position 5 und 6 (eigentlich 6 und 7; aber auch hier muss wegen des Mandanten ein Feld abgezogen werden).
Nun hat man alle erforderlichen Informationen zusammen; Der Funktionsaufruf kann in die Regel eingetragen werden:
Codeblock |
---|
LiesTab(gpktab;persnr;;;;vn;nn) |
Will man sichergehen, dass das Lesen des Datensatzes erfolgreich war, so muss man den Rückgabewert der Funktion prüfen (0 = OK, ungleich 0 = Fehler).