Eine einzeilige Abfrage fragt höchstens eine Zeile von der Datenbank ab. In einer SELECT-Anweisung für eine einzeilige Abfrage befindet sich eine INTO-Klausel nach der Auswahlliste und vor der FROM-Klausel. Die INTO-Klausel enthält eine Liste der Hostvariable, um den Wert der einzelnen Elemente der Auswahlliste zu empfangen. Die Anzahl der Hostvariable muss mit der Anzahl der Auswahllisten-Elemente übereinstimmen. Die Hostvariable können von Indikatorvariablen gefolgt sein, um NULL-Ergebnisse anzuzeigen.
Sobald die SELECT-Anweisung ausgeführt wird, ruft der Datenbankserver die Ergebnisse ab und schreibt sie in die Hostvariable. Falls die Abfrageergebnisse mehr als eine Zeile enthalten, gibt der Datenbankserver einen Fehler zurück.
Falls das Abfrageergebnis ist, dass keine Zeile ausgewählt ist, wird eine Zeile nicht gefunden
-Warnung zurückgegeben. Fehler und Warnungen werden in der SQLCA-Struktur zurückgegeben. Weitere Hinweise finden Sie unter
SQL-Kommunikationsbereich (SQLCA).
Das folgende Codefragment gibt zum Beispiel 1 zurück, falls eine Zeile der Tabelle Employees erfolgreich abgerufen wird, 0, falls die Zeile nicht existiert, und -1, falls ein Fehler auftritt.
EXEC SQL BEGIN DECLARE SECTION; long ID; char name[41]; char Sex; char birthdate[15]; short int ind_birthdate; EXEC SQL END DECLARE SECTION; ... int find_employee( long Employees ) { ID = Employees; EXEC SQL SELECT GivenName || ' ' || Surname, Sex, BirthDate INTO :name, :Sex, :birthdate:ind_birthdate FROM Employees WHERE EmployeeID = :ID; if( SQLCODE == SQLE_NOTFOUND ) { return( 0 ); /* Employees not found */ } else if( SQLCODE < 0 ) { return( -1 ); /* error */ } else { return( 1 ); /* found */ } } |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |