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

SQL Anywhere 12.0.1 » Ultra Light C/C++ プログラミング » アプリケーション開発 » Ultra Light C++ アプリケーション開発

 

Ultra Light データベースへの接続

Ultra Light アプリケーションをデータベースに接続しないと、データを操作できません。この項では、Ultra Light データベースに接続する方法について説明します。

ULDatabaseManager クラスは、データベースへの接続を開くために使用されます。ULDatabaseManager クラスは、接続が確立されると Null ではない ULConnection オブジェクトを返します。以下のタスクを実行するには、ULConnection オブジェクトを使用します。

  • トランザクションのコミットまたはロールバック。

  • データの Mobile Link サーバーとの同期。

  • データベース内のテーブルへのアクセス。

  • SQL 文の処理。

  • アプリケーション内のエラーの処理。

データベースファイルに対して書き込み可能なパスが指定されていることを確認します。たとえば、NSSearchPathForDirectoriesInDomains 関数を使用して、NSDocumentDirectory を問い合わせます。

注意

サンプルコードは、 %SQLANYSAMP12%\UltraLite\CustDB\ ディレクトリにあります。

 ♦ Ultra Light データベースへの接続
  1. ULDatabaseManager オブジェクトを初期化し、次のコードを使用して Ultra Light の機能を有効にします。

    if( !ULDatabaseManager::Init() ) {
        return 0;
    }
    ULDatabaseManager::EnableAesDBEncryption();
     
    // Use ULDatabaseManager.Fini() when terminating the app.
  2. 次のコードを使用して、既存のデータベースへの接続を開きます。指定のデータベースファイルが存在しない場合は、新しいデータベースを作成します。



    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 );

    この手順では、接続が成功しなかった場合にエラー情報が保持される ULError オブジェクトを宣言します。

 マルチスレッドアプリケーション
 参照