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 - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

CREATE SERVER-Anweisung

Mit dieser Anweisung erstellen Sie einen Fremdserver.

Syntax 1
CREATE SERVER Servername
CLASS Serverklasse-Zeichenfolge
USING Verbindungsinformation-Zeichenfolge
[ READ ONLY ]
Serverklasse-Zeichenfolge :
'SAODBC' 
| 'ASEODBC' 
| 'DB2ODBC' 
| 'MSSODBC'
| 'ORAODBC' 
| 'MSACCESSODBC' 
| 'MYSQLODBC' 
| 'ULODBC' 
| 'ADSODBC' 
| 'ODBC' 
| 'SAJDBC' 
| 'ASEJDBC'
Verbindungsinformation-Zeichenfolge :
  { Hostname:Portnummer [/DB-Name ] | Datenquellenname | sqlanywhere-Verbindungszeichenfolge }
Syntax 2
CREATE SERVER Servername
CLASS 'DIRECTORY'
USING USING-Zeichenfolge
USING-Zeichenfolge :
'ROOT = Pfad
[ ;SUBDIRS = n ]
[ ;READONLY = { YES | NO } ]'
Parameter
  • CLASS-Klausel   Gibt die Serverklasse an, die Sie für eine Fernverbindung verwenden wollen. Serverklassen enthalten detaillierte Informationen über die Serverfähigkeiten. Die DIRECTORY-Klasse wird in Syntax 2 verwendet, um auf ein Verzeichnis auf dem lokalen Computer zuzugreifen.

  • USING-Klausel   Die USING-Klausel in Syntax 1 stellt eine Verbindungszeichenfolge für den Datenbankserver bereit. Die entsprechende Verbindungszeichenfolge hängt vom verwendeten Treiber ab, der wiederum von der Serverklasse-Zeichenfolge abhängt.

    Wenn eine ODBC-basierte Serverklasse verwendet wird, ist die USING-Klausel der Datenquellenname. Der Datenquellenname ist der Name der ODBC-Datenquelle.

    Bei SQL Anywhere-Fremdservern (SAODBC-Serverklassen) kann der Parameter Verbindungsinformation-Zeichenfolge jede gültige SQL Anywhere-Verbindungszeichenfolge sein. Sie können jeden beliebigen SQL Anywhere-Verbindungsparameter verwenden. Wenn Sie z.B. Verbindungsprobleme haben, können Sie einen LOG-Verbindungsparameter zur Protokollierung des Verbindungsversuchs aufnehmen.

    Weitere Informationen zu SQL Anywhere-Verbindungszeichenfolgen finden Sie unter Verbindungsparameter.

    Auf Unix-Plattformen müssen Sie auch den ODBC-Treibermanager referenzieren. Benutzen Sie beispielsweise die mitgelieferten iAnywhere Solutions ODBC-Treiber mit der folgenden Syntax:

    USING 'driver=SQL Anywhere 11;dsn=my_dsn'

    Wenn eine JDBC-basierte Serverklasse verwendet wird, ist die USING-Klausel Hostname:Portnummer [/DB-Name]. Hierbei gilt Folgendes:

    • Hostname   Der Computer, auf dem der Fremdserver läuft

    • Portnummer   Die TCP/IP-Portnummer, auf der der Fremdserver auf Verbindungen wartet. Die Standard-Portnummer für SQL Anywhere ist 2638.

    • DB-Name   Wenn Sie für SQL Anywhere-Fremdserver keinen DB-Namen angeben, wird die Standarddatenbank verwendet. Für Adaptive Server Enterprise ist die master-Datenbank der Standard. Wenn Sie DB-Name nicht verwenden, können Sie eine andere Datenbank auf andere Arten angeben (z.B. in der FORWARD TO-Anweisung).

      In Syntax 2 gibt die USING-Klausel die folgenden Werte für das lokale Verzeichnis an:

  • ROOT-Klausel   Der Pfad, der relativ zum Datenbankserver ist und das Stammverzeichnis der Verzeichniszugriffsklasse bildet. Wenn Sie eine Proxytabelle unter Verwendung des Namens des Verzeichniszugriffsservers erstellen, ist die Proxytabelle relativ zu diesem Stammpfad.

  • SUBDIRS-Klausel   Eine Zahl zwischen 0 und 10, die die Anzahl der Verzeichnisebenen innerhalb des Stammverzeichnisses darstellt, auf die der Datenbankserver zugreifen kann. Wenn SUBDIRS weggelassen oder auf 0 gesetzt wird, sind nur die Dateien im Stammverzeichnis über den Verzeichniszugriffsserver zugreifbar. Sie können Proxytabellen für jedes über diesen Server verfügbare Verzeichnis oder Unterverzeichnis erstellen.

  • READONLY-Klausel   Gibt an, ob die Dateien, auf die über den Verzeichniszugriffsserver zugegriffen wird, geändert werden können. Standardmäßig ist dieser Wert auf NO gesetzt.

  • CREATEDIRS-Klausel   Gibt an, ob Verzeichnisse mithilfe des Verzeichniszugriffsservers erstellt werden können. Standardmäßig ist dieser Wert auf NO gesetzt.

Bemerkungen

Wenn Sie einen Fremdserver erstellen, wird er der ISYSSERVER-Systemtabelle hinzugefügt.

Syntax 1   Die CREATE SERVER-Anweisung definiert einen Fremdserver.

Weitere Informationen zu Serverklassen und zur Konfiguration eines Servers finden Sie unter Serverklassen für den Ferndatenzugriff.

Syntax 2   Mit der Anweisung CREATE SERVER können Sie einen Verzeichniszugriffsserver erstellen, mit dem Sie auf die lokale Verzeichnisstruktur auf dem Computer zugreifen können, auf dem der Datenbankserver läuft. Sie müssen ein externes Login für jeden Datenbankbenutzer erstellen, der den Verzeichniszugriffsserver verwenden wird. Unter Unix läuft der Datenbankserver als ein spezifischer Benutzer, daher basieren Dateiberechtigungen auf den Berechtigungen, die dem Benutzer des Datenbankservers erteilt wurden.

Weitere Hinweise zu Verzeichniszugriffsservern finden Sie unter Verzeichniszugriffsserver benutzen.

Berechtigungen

Zum Ausführen dieses Befehls ist eine DBA-Berechtigung erforderlich.

Unter Windows Mobile nicht unterstützt.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Mit dem folgenden Beispiel wird ein SQL Anywhere-Fremdserver namens testsa auf dem Computer namens apple erstellt, der an der Portnummer 2638 auf Verbindungen wartet:

CREATE SERVER testsa
CLASS 'SAJDBC'
USING 'apple:2638';

Mit dem folgenden Beispiel wird ein Fremdserver für den JDBC-basierten Adaptive Server ase_prod erstellt. Sein Computername ist banana und die Portnummer lautet 3025.

CREATE SERVER ase_prod
CLASS 'asejdbc'
USING 'banana:3025';

Mit dem folgenden Beispiel wird ein Fremdserver für den Oracle-Server namens oracle723 erstellt. Sein ODBC-Datenquellenname ist oracle723.

CREATE SERVER oracle723
CLASS 'oraodbc'
USING 'oracle723';

Das folgende Beispiel erstellt einen Verzeichniszugriffsserver, der nur auf Dateien im Verzeichnis c:\temp zugreift:

CREATE SERVER diskserver0
CLASS 'directory'
USING 'root=c:\temp';
CREATE EXTERNLOGIN DBA TO diskserver0;
CREATE EXISTING TABLE diskdir0 AT 'diskserver0;;;.';

-- Get a list of those files.
SELECT permissions, file_name, size FROM diskdir0;

Das folgende Beispiel erstellt einen Verzeichniszugriffsserver, der neun Verzeichnisebenen sieht:

-- Create a directory server that sees 9 levels of directories.
CREATE SERVER diskserver9
CLASS 'directory'
USING 'ROOT=c:\temp;SUBDIRS=9';
CREATE EXTERNLOGIN DBA TO diskserver9;
CREATE EXISTING TABLE diskdir9 AT 'diskserver9;;;.';