Eine weitere signifikante Inkonsistenzart ist die Cursor-Instabilität. Wenn diese Inkonsistenz vorhanden ist, kann eine Transaktion eine Zeile ändern, die durch den Cursor einer anderen Transaktion referenziert wird. Die Cursorstabilität stellt sicher, dass Anwendungen, die Cursor verwenden, keine Inkonsistenzen in die Daten der Datenbank einbringen.
Transaktion A liest eine Zeile unter Verwendung eines Cursors. Transaktion B ändert diese Zeile und schreibt sie fest. Ohne zu realisieren, dass die Zeile geändert wurde, ändert sie Transaktion A.
SQL Anywhere bietet Cursor-Stabilität auf den Isolationsstufen 1, 2 und 3. Die Cursorstabilität gewährleistet, dass keine anderen Transaktionen die Informationen ändern können, die in der gegenwärtigen Zeile Ihres Cursors enthalten sind. Bei den Informationen in einer Zeile des Cursors kann es sich um die Kopie von Informationen in einer bestimmten Tabelle oder die Kombination von Daten aus verschiedenen Zeilen von mehreren Tabellen handeln. Wenn Sie innerhalb einer SELECT-Anweisung einen Join oder eine Unterabfrage-Bedingung verwenden, betrifft es meistens mehr als eine Tabelle.
Hinweise über das Programmieren von SQL-Prozeduren und Cursorn finden Sie unter Prozeduren, Trigger und Batches verwenden.
Cursor werden nur dann verwendet, wenn Sie SQL Anywhere über eine andere Anwendung benutzen. Weitere Hinweise finden Sie unter SQL in Anwendungen verwenden.
Ein weiterer Gesichtspunkt in Bezug auf Anwendungen, die Cursor verwenden, besteht darin, ob Änderungen der zugrunde liegenden Daten für die Anwendung sichtbar sind. Sie können die Änderungen, die für Anwendungen sichtbar sind, steuern, indem Sie die Sensitivität des Cursors festlegen.
Weitere Hinweise zur Cursorempfindlichkeit finden Sie unter SQL Anywhere-Cursor.
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 |