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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » SQL Anywhere Embedded SQL » Referenz der Bibliotheksfunktionen

 

db_start_engine-Funktion

Prototyp
unsigned int db_start_engine( SQLCA * sqlca, char * parms );
Argumente
  • sqlca   Ein Zeiger auf eine SQLCA-Struktur. Hinweise finden Sie unter SQL-Kommunikationsbereich (SQLCA).

  • parms   Eine auf NULL endende Zeichenfolge, die eine durch Semikolons getrennte Liste mit Parametereinstellungen enthält, und zwar in der Form KEYWORD=Wert. Zum Beispiel
    "UID=DBA;PWD=sql;DBF=c:\\db\\mydatabase.db"

    Eine Liste der Verbindungsparameter finden Sie unter Verbindungsparameter.

Beschreibung

Startet den Datenbankserver, falls er nicht läuft.

Eine Beschreibung der von dieser Funktion ausgeführten Schritte finden Sie unter Speicherort eines Datenbankservers ermitteln.

Wenn der Datenbankserver bereits lief oder erfolgreich gestartet wurde, ist der Rückgabewert TRUE (von Null verschieden) und SQLCODE wird auf 0 gesetzt. Fehlerinformationen werden in SQLCA zurückgegeben.

Der folgende Aufruf von db_start_engine startet den Datenbankserver und nennt ihn demo. Er lädt die Datenbank nicht, trotz des DBF-Verbindungsparameters:

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

Falls Sie den Server und eine Datenbank starten möchten, fügen Sie die Datenbankdatei in den StartLine-Verbindungsparameter (START) ein:

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

Dieser Aufruf startet den Server, nennt ihn eng_name und startet die SQL Anywhere-Beispieldatenbank auf diesem Server.

Die Funktion db_start_engine versucht, eine Verbindung zu einem Server herzustellen, bevor einer gestartet wird, um zu verhindern, dass ein Server gestartet wird, der bereits läuft.

Der Verbindungsparameter ForceStart (FORCE) wird nur von der Funktion db_start_engine verwendet. Wenn er auf YES gesetzt wird, wird nicht versucht, eine Verbindung zu einem Server herzustellen, bevor einer gestartet wird. Dadurch kann das folgende Befehlspaar wie erwartet arbeiten:

  1. Starten eines Datenbankservers mit dem Namen server_1:

    start dbeng11 -n server_1 demo.db
  2. Der Start eines neuen Servers wird erzwungen und es wird eine Verbindung zu ihm hergestellt:

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

Wenn ForceStart (FORCE) nicht verwendet wurde und ohne einen Parameter ServerName (ENG) würde der zweite Befehl versucht haben, mit server_1 zu verbinden. Die Funktion db_start_engine übernimmt nicht den Servernamen von der Option -n des Parameters StartLine (START).