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

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » UltraLite C++-Anwendungsentwicklung

 

Verbindung mit einer UltraLite-Datenbank herstellen

UltraLite-Anwendungen müssen eine Verbindung zur Datenbank herstellen, bevor sie ihre Daten bearbeiten können. Dieser Abschnitt beschreibt, wie Sie sich mit einer UltraLite-Datenbank verbinden.

Die ULDatabaseManager-Klasse wird benutzt, um eine Verbindung mit einer Datenbank zu öffnen. Die ULDatabaseManager-Klasse gibt ein Nicht-Null-ULConnection-Objekt zurück, wenn eine Verbindung hergestellt wird. Verwenden Sie das ULConnection-Objekt, um die folgenden Aufgaben auszuführen:

  • Festschreiben oder Zurücksetzen von Transaktionen.

  • Synchronisieren von Daten mit einem MobiLink-Server.

  • Zugriff auf Tabellen in der Datenbank.

  • Arbeiten mit SQL-Anweisungen.

  • Verarbeitung der Fehler in Ihrer Anwendung.

Achten Sie darauf, einen beschreibbaren Pfad für die Datenbankdatei anzugeben. Verwenden Sie die NSSearchPathForDirectoriesInDomains-Funktion, um beispielsweise NSDocumentDirectory abzufragen.

Hinweis

Der Beispielcode befindet sich im Verzeichnis %SQLANYSAMP12%\UltraLite\CustDB\.

 Herstellen einer Verbindung mit der UltraLite-Datenbank
  1. Initialisieren Sie das ULDatabaseManager-Objekt und aktivieren Sie Funktionen in UltraLite mit dem folgenden Code:

    if( !ULDatabaseManager::Init() ) {
        return 0;
    }
    ULDatabaseManager::EnableAesDBEncryption();
     
    // Use ULDatabaseManager.Fini() when terminating the app.
  2. Öffnen Sie mit dem folgenden Code eine Verbindung mit einer bestehenden Datenbank oder erstellen Sie eine neue Datenbank, wenn die angegebene Datenbankdatei nicht vorhanden ist:



    ULConnection * conn;
    ULError ulerr;
     
    conn = ULDatabaseManager::OpenConnection( "dbf=sample.udb;dbkey=aBcD1234", &ulerr );
    if( conn == NULL ) {
        if( ulerr.GetSQLCode() == SQLE_ULTRALITE_DATABASE_NOT_FOUND ) {
            conn = ULDatabaseManager::CreateDatabase( "dbf=sample.udb;dbkey=aBcD1234", &ulerr );
            if( conn == NULL ) {
                // write code that uses ulerr to determine what happened
                return 0;
            }
            // add code to create the schema for your database
        } else {
            // write code that uses ulerr to determine what happened
            return 0;
        }
    }
    assert( conn != NULL );

    In diesem Schritt deklarieren Sie ein ULError-Objekt, das Fehlerinformationen für den Fall enthält, dass die Verbindung nicht erfolgreich verlaufen ist.

 Anwendungen mit mehreren Threads
 Siehe auch