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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere Embedded SQL » ライブラリ関数のリファレンス

 

db_start_engine 関数

プロトタイプ
unsigned int db_start_engine( SQLCA * sqlca, char * parms );
引数
  • sqlca   SQLCA 構造体へのポインタ。詳細については、SQLCA (SQL Communication Area)を参照してください。

  • parms   NULL で終了された文字列で、KEYWORD=value 形式のパラメータ設定をセミコロンで区切ったリストが含まれています。次に例を示します。
    "UID=DBA;PWD=sql;DBF=c:\\db\\mydatabase.db"

    接続パラメータのリストについては、接続パラメータを参照してください。

説明

データベース・サーバが実行されていない場合、データベース・サーバを起動します。

この関数によって実行されるステップの説明については、データベース・サーバの検出を参照してください。

データベース・サーバがすでに実行している場合、または正しく起動した場合、戻り値は TRUE (0 以外) であり、SQLCODE には 0 が設定されます。エラー情報は SQLCA に返されます。

次に示す db_start_engine の呼び出しは、データベース・サーバを起動して demo という名前を付けます。ただし、DBF 接続パラメータの指定にかかわらずデータベースはロードしません。

db_start_engine( &sqlca, 
    "DBF=samples-dir\\demo.db;START=dbeng11" );

サーバとともにデータベースも起動する場合は、次に示すように StartLine (START) 接続パラメータにデータベース・ファイルを含めてください。

db_start_engine( &sqlca,
   "ENG=eng_name;START=dbeng11 samples-dir\\demo.db" );

この呼び出しは、サーバを起動して eng_name という名前を付け、そのサーバで SQL Anywhere サンプル・データベースを起動します。

db_start_engine 関数は、サーバを起動する前にサーバに接続を試みます。これは、すでに稼働しているサーバに起動を試みないようにするためです。

ForceStart (FORCE) 接続パラメータは、db_start_engine 関数のみが使用します。YES に設定した場合は、サーバを起動する前にサーバに接続を試みることはありません。これにより、次の 1 組のコマンドが期待どおりに動作します。

  1. server_1 と名付けたデータベース・サーバを起動します。

    start dbeng11 -n server_1 demo.db
  2. 新しいサーバを強制的に起動しそれに接続します。

    db_start_engine( &sqlda, 
      "START=dbeng11 -n server_2 mydb.db;ForceStart=YES" )

ForceStart (FORCE) を使用せず、ServerName (ENG) パラメータも指定されていない場合、2 番目のコマンドでは server_1 に接続しようとします。db_start_engine 関数を実行しても、StartLine (START) パラメータの -n オプションでサーバ名を取得することはできません。