Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Programmierung » Embedded SQL

 

DBLIB dynamisch unter Windows laden

Um Anwendungen zu entwickeln, die Funktionen aus DLLs aufrufen, ist es üblich, die Anwendung mit einer Importbibliothek zu linken, die die erforderlichen Funktionsdefinitionen enthält.

Dieser Abschnitt beschreibt eine alternative Methode, um Anwendungen für SQL Anywhere zu entwickeln. Die DBLIB kann dynamisch geladen werden, ohne dass sie mit der Importbibliothek verknüpft werden muss, und zwar mithilfe des Moduls esqldll.c im Unterverzeichnis SDK\C Ihres Installationsverzeichnisses.

Eine ähnliche Methode kann verwendet werden, um DBLIB dynamisch auf Unix-Plattformen zu laden.

 ♦  So wird die Schnittstellen-DLL dynamisch geladen
  1. Ihr Programm muss db_init_dll aufrufen, um die DLL zu laden, und es muss db_fini_dll aufrufen, um die DLL wieder freizugeben. Der db_init_dll-Aufruf muss vor allen Funktionen in der Datenbankschnittstelle erfolgen, und keine Funktion in der Schnittstelle darf nach db_fini_dll aufgerufen werden.

    Sie müssen trotzdem die Bibliotheksfunktionen db_init und db_fini aufrufen.

  2. Fügen Sie vor der Anweisung EXEC SQL INCLUDE SQLCA mit #include die Header-Datei esqldll.h ein, oder fügen Sie <sqlca.h> mit #include in Ihr Embedded SQL-Programm ein. Die Header-Datei esqldll.h enthält sqlca.h.

  3. Ein SQL OS (Operating System - Betriebssystem)-Makro muss definiert werden. Die Header-Datei sqlos.h, die mit sqlca.h eingefügt wird, versucht das passende Makro zu bestimmen und zu definieren. Bei bestimmten Kombinationen von Betriebssystemen und Compilern kann dieser Versuch allerdings fehlschlagen. In diesem Fall müssen Sie entweder mit #define eine Definition am Beginn Ihrer Datei einfügen, oder die Definition mit einer Compiler-Option liefern. Der Makro, der für Windows definiert werden muss, wird unten dargestellt.

    Makro Unterstützte Plattformen
    _SQL_OS_WINDOWS Alle Windows-Betriebssysteme
  4. Kompilieren Sie esqldll.c.

  5. Statt mit der Importbibliothek linken Sie Ihre Embedded SQL-Anwendung mit dem Objektmodul esqldll.obj.

 Beispiel