Freigeben über


Schreiben einer interoperablen Anwendung

Wenn eine Anwendung denselben Code für mehrere Treiber verwendet, muss dieser Code unter diesen Treibern interoperabel sein. In den meisten Fällen ist dies eine einfache Aufgabe. Beispielsweise ist der Code zum Abrufen von Zeilen mit einem Vorwärtscursor für alle Treiber identisch. In einigen Fällen kann dies schwieriger sein. Der Code zum Erstellen von Bezeichnern für die Verwendung in SQL-Anweisungen muss z. B. den Bezeichnerfall, die Quotierung und die 1-Part-, zweiteiligen und dreiteiligen Benennungskonventionen berücksichtigen.

Im Allgemeinen muss interoperabler Code mit Problemen der Featureunterstützung und Featurevariabilität umgehen. Die Featureunterstützung bezieht sich darauf, ob ein bestimmtes Feature unterstützt wird. Beispielsweise müssen nicht alle DBMSs Transaktionen unterstützen, und interoperabler Code muss unabhängig von der Transaktionsunterstützung ordnungsgemäß funktionieren. Die Featurevariabilität bezieht sich auf variationen in der Art und Weise, in der ein bestimmtes Feature unterstützt wird. Katalognamen werden z. B. am Anfang von Bezeichnern in einigen DBMSs und am Ende der Bezeichner in anderen platziert.

Anwendungen können die Featureunterstützung und Featurevariabilität zur Entwurfszeit oder zur Laufzeit behandeln. Um die Featureunterstützung und -variabilität zur Entwurfszeit zu behandeln, untersucht ein Entwickler die Ziel-DBMSs und Treiber und stellt sicher, dass derselbe Code unter ihnen interoperabel ist. Dies ist im Allgemeinen die Art und Weise, in der Anwendungen mit geringer oder eingeschränkter Interoperabilität mit diesen Problemen umgehen.

Wenn der Entwickler beispielsweise garantiert, dass eine vertikale Anwendung nur mit vier bestimmten DBMSs funktioniert und jede dieser DBMSs Transaktionen unterstützt, benötigt die Anwendung zur Laufzeit keinen Code, um die Transaktionsunterstützung zu überprüfen. Es kann immer davon ausgegangen werden, dass Transaktionen aufgrund der Entwurfszeitentscheidung nur vier DBMSs verwenden, von denen jede Transaktionen unterstützt.

Um die Featureunterstützung und -variabilität zur Laufzeit zu behandeln, muss die Anwendung zur Laufzeit auf verschiedene Funktionen testen und entsprechend reagieren. Dies ist im Allgemeinen die Art und Weise, in der hoch interoperable Anwendungen mit diesen Problemen umgehen. Bei Funktionsunterstützungsproblemen bedeutet dies das Schreiben von Code, der das Feature optional macht oder Code schreibt, der das Feature emuliert, wenn es nicht verfügbar ist. Bei Funktionsvariabilitätsproblemen bedeutet dies das Schreiben von Code, der alle möglichen Variationen unterstützt.

In diesem Abschnitt werden die folgenden Themen behandelt: