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 嵌入式 SQL » 库函数参考

 

db_start_engine 函数

原型
unsigned int db_start_engine( SQLCA * sqlca, char * parms );
参数
  • sqlca   指向 SQLCA 结构的指针。有关信息,请参见SQL 通信区域 (SQLCA)

  • parms   以空值终止的字符串,其中包含以分号分隔的参数设置列表,每个参数设置的形式均为 KEYWORD=value。例如,
    "UID=DBA;PWD=sql;DBF=c:\\db\\mydatabase.db"

    有关连接参数的列表,请参见连接参数

说明

如果数据库服务器尚未运行,则将其启动。

有关此函数执行步骤的说明,请参见查找数据库服务器

如果数据库已运行或已成功启动,则返回值为 TRUE(非零)并且将 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. 启动名为 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) 参数,则第二个命令会尝试连接到 server_1。db_start_engine 函数不从 StartLine (START) 参数的 -n 选项获取服务器名。