INFO: Wann und von dbcancel() oder sqlcancel()

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

117143
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Die Funktion dbcancel() und sqlcancel(), die Visual Basic SQL (VBSQL) entspricht, werden häufig in Anwendungen verwendet, wenn nicht werden sollte. Ein großer Prozentsatz der allgemeine DB-Library (DB-Lib) oder VBSQL Programmierung Probleme entstammen Anwendungen, die diesem API-Aufruf zu missbrauchen. Dieser Artikel enthält einige praktischen Richtlinien, wann und wann nicht dbcancel() und sqlcancel() verwenden.
Weitere Informationen
Es ist im Allgemeinen empfohlen und DB­Library-Programmierung empfohlen, Prozesse, die alle Ergebnisse, bis es sind keine weiteren Ergebnisse und alle Zeilen, bis keine weiteren Zeilen vorhanden sind, beim Abrufen der Ergebnisse oder nach dem Senden einer Transact­SQL-Batch an den Server angesehen.

Ein DB-Library-Programm verfügen Aufrufe von dbresults()/sqlresults() und dbnextrow()/sqlnextrow() fest codiert, um eine festgelegte Anzahl Iterationen nie.

Sie sollten z. B. dbresults() und dbnextrow() wie folgt aufrufen:
   while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)        {             while (dbnextrow(dbproc) != NO_MORE_ROWS)        }				

Dbresults() und dbnextrow() als oben nicht aufgerufen werden kann und häufig der Fall ist, Anwendungsprobleme verursachen, die nicht möglicherweise offensichtlich bis später in Entwicklungs- oder Testen werden, wenn korrigierende Aktion kostspielig ist, die.

Wenn aus irgendeinem Grund eine Anwendung Zugriff nur x Zeilen aus einem Resultset erforderlich ist, es ist, wird empfohlen, die Transact-SQL-Befehl "Zeilenanzahl festlegen X" anstelle von aufrufenden Dbnextrow verwendet werden, X-Mal und dbcancel(). Es gibt verschiedene Gründe für die Verwendung nicht als Teil der standard Ergebnisse verarbeiten Routinen dbcancel().

Wann nicht dbcancel() verwendet

dbcancel() nicht abbrechen, Rollback oder commit einer benutzerdefinierten Transaktion. Alle exklusive Sperren innerhalb der benutzerdefinierten Transaktion erworben werden beibehalten, auch nach dem ausstellen dbcancel(), da die benutzerdefinierte Transaktion noch aktiv ist. Dies kann zu blockieren und andere schwierig Parallelitätsproblemen führen. Bei der Ausstellung dbcancel() innerhalb einer benutzerdefinierten Transaktion sollten der Programmierer sicherstellen, dass die Transaktion entweder explizit ein Commit oder Rollback.

Darüber hinaus beim Betrieb in diesem Kontext ist es leicht zu übersehen, dass eine Anwendung tatsächlich mitten in einer benutzerdefinierten Transaktion ist, die nie ein Commit bzw. Rollback wurde. Darüber hinaus sind auch einige Variationen wie Dbcancel oder Warnungssignal die generiert von Plattform-Plattform implementiert werden.

Hinweis: Microsoft SQL Server-Implementierungen von dbcancel() sind Konstanten, für alle Microsoft SQL Server-Plattformen wie Windows NT X 86 "," Alpha "und" RISC-Plattformen. Kompatibilitätsprobleme ergeben sich hauptsächlich zwischen verschiedenen Sybase und Microsoft SQL Server-Implementierungen. Darüber hinaus entstammen Unterschiede häufig Transport-bezogene Probleme wie z. B. wie einen Kreditor TCP/IP Out-of-Band Daten implementiert ist und wie Sie mit einem anderen Anbieter TCP/IP Out-of-Band Daten Implementierung interagiert, die net Ergebnisse in DB­Library-Anwendungen mit dbcancel() Portabilitätsprobleme verursachen können.

Verwendung von dbcancel()

dbcancel() sollten in Fällen verwendet werden, in denen der Benutzer einer Anwendung Kontrolle muss. In dieser Umgebung kann ein Programmierer die Ausnahme behandeln eines Benutzers ausgeben eines Dbcancel in einer Umgebung, in denen dbcancel() funktioniert nicht durch Antworten mit einer Meldung wie "dbcancel() auf dieser Plattform nicht unterstützt!". Ein Programmierer möglicherweise auch dbcancel() in DB­Library-Befehl Ausfall des als Teil einer Bereinigung Prozedur für die DB-LIB Prozesse betroffenen verwenden möchten.
4.20a Oob begin Tran End Dblib

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 117143 – Letzte Überarbeitung: 02/11/2014 09:14:49 – Revision: 3.1

  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • kbnosurvey kbarchive kbmt kbinfo kbprogramming KB117143 KbMtde
Feedback