SET ANSI-Befehl
Gibt an, wie Vergleiche zwischen Zeichenfolgen verschiedener Länge mit dem =-Operator in Visual FoxPro-SQL-Befehlen durchgeführt werden.
SET ANSI ON | OFF
Parameter
ON
Füllt die kürzere Zeichenfolge mit Leerzeichen auf, bis sie dieselbe Länge hat wie die längere Zeichenfolge. Die beiden Zeichenfolgen werden dann Zeichen für Zeichen miteinander verglichen. Betrachten Sie den folgenden Vergleich:'Tommy' = 'Tom'
Das Ergebnis ist gleich Falsch (.F.), wenn SET ANSI auf ON eingestellt ist, da "Tom" zu "Tom " aufgefüllt wird und dann im direkten Zeichenvergleich nicht mit "Tommy" übereinstimmt.
Der ==-Operator verwendet diese Methode für Vergleiche in Visual FoxPro-SQL-Befehlen.
OFF
Gibt an, dass die kürzere Zeichenfolge nicht mit Leerzeichen aufgefüllt wird. Die beiden Zeichenfolgen werden Zeichen für Zeichen bis zum Ende der kürzeren Zeichenfolge miteinander verglichen. Betrachten Sie den folgenden Vergleich:'Tommy' = 'Tom'
Das Ergebnis ist gleich Wahr (.T.), wenn SET ANSI auf OFF eingestellt ist, da der Vergleich nach "Tom" endet.
Hinweise
SET ANSI gibt an, ob bei einem SQL-Zeichenfolgenvergleich die kürzere der beiden Zeichenfolgen mit Leerzeichen aufgefüllt wird. SET ANSI wirkt sich nicht auf den ==-Operator aus. Wenn Sie den ==-Operator verwenden, wird die kürzere Zeichenfolge vor einem Vergleich immer mit Leerzeichen aufgefüllt.
SET ANSI gilt nur für die aktuelle Datensitzung.
SET ANSI und der Abfrage-Designer Visual FoxPro erstellt, wenn Sie eine Abfrage erstellen, im Abfrage-Designer einen SELECT - SQL-Befehl. Wenn Sie Verknüpfungs- und Filterbedingungen erstellen und eine der Optionen Gleich oder Genau gleich wählen, wird der Operator = oder == in die generierte SELECT-Anweisung eingefügt. Die SET ANSI-Einstellung kann sich auf das Ergebnis von Abfragen auswirken, die Sie im Abfrage-Designer erstellen und ausführen.
Reihenfolge der Zeichenfolgen In SQL-Befehlen spielt es keine Rolle, welche der beiden Zeichenfolgen auf der linken oder rechten Seite steht. Das Umstellen einer Zeichenfolge von einer Seite des Operators = oder == auf die andere Seite wirkt sich nicht auf das Ergebnis des Vergleichs aus.
Siehe auch
CREATE QUERY | MODIFY QUERY | SELECT – SQL | SET DATASESSION | SET EXACT