Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

SQLSelect (Funktion)

  • Last UpdatedSep 24, 2024
  • 3 minute read

Die Funktion SQLSelect() ruft anhand bestimmter Kriterien Datensätze aus einer Tabelle ab. Die abgerufenen Datensätze werden in einer temporären Ergebnistabelle (dem Auswahlpuffer) im Arbeitsspeicher abgelegt. Die einzelnen Datensätze können dann mit den Funktionen SQLFirst(), SQLLast(), SQLNext() und SQLPrev() abgerufen werden.

Wichtig: Am Ende eines Skripts, in dem Daten mit der Funktion SQLSelect() abgerufen werden, sollten Sie immer die Funktion SQLEnd() aufrufen. Dadurch wird der Speicher, der von der Ergebnistabelle belegt wird, wieder freigegeben.

Kategorie

SQL

Syntax

[Ergebnis=]SQLSelect(VerbindungsID,Tabellenname, Bindeliste,WhereAusdruck,OrderByAusdruck);

Argumente

VerbindungsID

Eine Variable vom Typ „Speicher Integer“, die die Nummer (ID) enthält, die jeder neuen Datenbankverbindung von der Funktion SQLConnect() zugewiesen wird.

Tabellenname

Name der Datenbanktabelle, auf die Sie zugreifen wollen.

Bindeliste

Gibt an, welche InTouch-Variablen und Datenbank verwendet werden.

WhereAusdruck

Definiert eine Bedingung, die jeder Zeile der Tabelle einen Wahrheitswert (wahr oder falsch) zuordnet. Die Funktion SQLSelect() ruft dabei nur diejenigen Zeilen der Tabelle ab, für die die Bedingung WhereExpr wahr ist. Der Ausdruck muss folgendes Format haben:

Spaltenname Vergleichsoperator Ausdruck

Hinweis: Beim Vergleich mit einem Textausdruck muss der Ausdruck in Hochkommata angegeben werden.

Durch den Ausdruck im folgenden Beispiel werden alle Zeilen ausgewählt, deren Spalte „Name“ den Wert „EmployeeID“ enthält:

Name='MitarbID'

Im folgenden Beispiel werden alle Zeilen ausgewählt, die Teile-Nummern zwischen 100 und 199 enthalten:

TeilNr>=100 und TeilNr<200

Im folgenden Beispiel werden alle Zeilen ausgewählt, für die in der Spalte „Temperatur“ ein Wert von über 350 angegeben ist:

Temperatur>350

WhereExpr - Variable vom Typ „Speicher Meldung“

OrderByExpr - Variable vom Typ „Speicher Meldung“

Speed_Input - Speicher Real - Benutzereingabe Analog

Serial_Input - Speicher Meldung - Benutzereingabe Zeichenfolge

Analog – Beispiel

WhereAusdruck = "Geschwindigkeit = " + Text
(Geschwindigkeit_Eingabe,"#.##");

Da Speed_Input eine Zahl ist, muss diese in Text konvertiert werden, damit sie mit der Zeichenfolge WhereExpr verkettet werden kann.

Zeichenfolge – Beispiel

WhereAusdruck = "Ser_Nr = ‘" +
Seriennr_Eingabe + "’";

Da Serial_Input eine Zeichenfolge ist, muss der Wert zwischen Hochkommata stehen. Beispiel: WhereExpr = "Ser_No='125gh‘";

Zeichenfolge mit der Anweisung „like“ – Beispiel

WhereAusdruck = "Ser_Nr like ‘-’"

Bei der Verwendung von „Like“ kann das Zeichen „%“ als Stellvertreterzeichen verwendet werden.

Zeichenfolge und Analog mit „and“-Verknüpfung – Beispiel

WhereAusdruck = "Ser_Nr = '" + Seriennr_Eingabe + "'" + " and " + "Geschwindigkeit = " + Text(Geschwindigkeit_Eingabe,"#.##"); OrderByExpr = "";

Wenn die Ergebnisse nicht sortiert werden sollen, verwenden Sie wie oben gezeigt eine leere Zeichenfolge.

SQLSelect mit der Variablen WhereExpr

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

WhereAusdruck, OrderByAusdruck);

Fehler_Mldg = SQLErrorMsg ( Ergebnis );

SQLSelect mit WhereExpr integriert

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

"Ser_Nr = ‘" + Seriennr_Eingabe + "’", OrderByAusdruck);

Fehler_Mldg = SQLErrorMsg ( Ergebnis );

OrderByAusdruck

Legt fest, wie die Ergebnisse sortiert werden sollen. Zum Sortieren dürfen ausschließlich Spaltennamen verwendet werden. Der Ausdruck muss dafür folgendes Format haben:

ColumnName [ASC|DESC]

Im folgenden Beispiel wird die ausgewählte Tabelle nach der Spalte „Manager“ in aufsteigender Reihenfolge sortiert:

"Manager ASC"

Wenn Sie eine Tabelle nach mehreren Spalten sortieren möchten, ist der Ausdruck in folgender Form einzugeben:

SpaltenName [ASC|DESC],

SpaltenName [ASC|DESC]

Im folgenden Beispiel wird die ausgewählte Tabelle nach der Spalte „Temperatur“ in aufsteigender und nach der Spalte „Zeit“ in absteigender Reihenfolge sortiert:

"Temperatur ASC,Zeit DESC"

Beispiele

Mit der folgenden Anweisung rufen Sie unter Verwendung der BindList „Liste1“ alle Datensätze aus der Tabelle POSTEN ab, die in der Spalte „Typ“ den Wert „Kekse“ enthalten. Die Daten werden nach der Spalte „Menge“ in aufsteigender und nach der Spalte „Zucker“ in absteigender Reihenfolge sortiert:

Ergebnis=SQLSelect(VerbindungsID,"POSTEN", "Liste1","Typ='Kekse'","Menge ASC, Zucker DESC");

Mit der folgenden Anweisung wählen Sie alle Daten in der Tabelle „POSTEN“ aus. Für WhereExpr und OrderByExpr darf dabei kein Wert angegeben werden:

Ergebnis=SQLSelect(VerbindungsID,"POSTEN","Liste1", "","");

Siehe auch

SQLFirst(), SQLConnect(), SQLLast(), SQLNext(), SQLPrev(), SQLEnd()

In This Topic