f$SQLLiesTabelle (engl. f$SQLReadTable)
f$SQLLiesTabelle (engl. f$SQLReadTable)
Mit dieser Funktion werden beliebig viele Datensätze in eine indizierte Parametergruppe gelesen. Der Name der Parametergruppe muss ohne Index angegeben werden. Falls die Parametergruppe nicht indiziert ist, wird lediglich ein Datensatz gelesen. Falls die Spalten der Tabelle und die Parameter der Parametergruppe nicht übereinstimmen, werden lediglich diejenigen Parameter belegt, zu welchen es auch eine gleichnamige Spalte gibt. Nullwerte in der Datenbank bewirken, dass der Parameter auf LEER gesetzt wird. Gelesen wird solange, bis entweder kein Datensatz mehr gefunden wird oder bis der maximale Index der Parametergruppe erreicht ist.
Die Bestimmung der zu lesenden Datensätze erfolgt über eine Parametergruppe mit Suchvorgaben (SuchPG). Diese Parametergruppe muss mit dem Typennamen der Parametergruppe, die die Datenbanktabelle beschreibt, definiert sein. Die Werte in dieser Parametergruppe werden als Suchvorgabe (mit „gleich") verwendet. Ein Parameter im Zustand LEER bewirkt keine Einschränkung der Suche. Eine Suche mit Platzhaltern („Wildcards") ist hier nicht möglich. Wenn diese Parametergruppe Leer ist, werden alle Datensätze gelesen.
Das Ergebnis der Suche kann durch Angabe von Sortierkriterien sortiert werden.
Anmerkung: Da das Aufbauen einer Verbindung etwas Zeit benötigt, sollte nicht für jede SQL-Funktion eine neue Verbindung hergestellt werden.
Syntax: | Status = f$SQLLiesTabelle (Kanal,'Tabelle',SuchPG ,'Sortierung' , ErgPG , 'NameAnzahl' , Modus ) | ||
| Argument | Typ | Bedeutung |
| Kanal | Ganzzahl | Kanalnummer der SQL-Verbindung |
| Tabelle | Zeichenkette | Name der Tabelle bzw. Sicht, von der gelesen werden soll |
| SuchPG | Zeichenkette | Name der Parametergruppe, die die Suchkriterien enthält. Falls alle Datensätze gelesen werden sollen, kann auch ein Leerstring ('') verwendet werden. |
| Sortierung | Zeichenkette | Angabe der Spalten, nach denen sortiert werden soll. Bei Verwendung nicht existierender Namen werden keine Daten gelesen. Falls nicht sortiert werden soll, kann ein Leerstring ('') angegeben werden |
| ErgPG | Zeichenkette | Der Name der indizierten Parametergruppe, die gefüllt werden soll. |
| NameAnzahl | Zeichenkette | Der Name des Parameters, auf welchen die Anzahl der gelesenen Datensätze geschrieben wird. |
| Modus | Ganzzahl | Steuerung der Parametergruppenanpassung.: 0 : keine Aktion Anmerkung: Die Anpassung/ Definition der Parametergruppen findet nur in der aktuellen Ausführung statt. Die Definition der Parametergruppe im Entwicklungssystem wird nicht verändert. 10 : Der 1. Index der PG nach der Anzahl der gelesenen Datensätze wird auf UNDEF gesetzt. 11 - wie 1 + Der 1. Index der PG nach der Anzahl der gelesenen Datensätze wird auf UNDEF gesetzt. 12 - wie 2 + Der 1. Index der PG nach der Anzahl der gelesenen Datensätze wird auf UNDEF gesetzt. |
Ergebnis: | Ganzzahl | Fehlerstatus: 0 :Befehl wurde korrekt abgesetzt -1 :kein Datensatz gefunden -2 :noch mehr Datensätze gefunden -3 :die Parametergruppe wurde nicht gefunden -9999: Der SQL-Befehl war nicht erfolgreich. In diesem Fall kann mit Hilfe der Funktion: f$SQLFehler (f$SQLFehler)der Fehlerstatus und die Fehlerbeschreibung ermittelt werden. | |
Beispiel: | p$TDV:SMPAPI:Check_ODBC() f$PGLeer( 'Anschrift_s' ) Status = f$SQLLiesTabelle (SMP_NG.ODBC_KANAL, 'V_Anschrift', 'Anschrift_s' , 'Firma1', 'Anschrift_l', 'Anzahl', 10) | ||