Erstellt einen Fremdserver.
CREATE SERVER server-name CLASS server-class-string USING connection-info-string [ READ ONLY ]
server-class-string : 'SAODBC' | 'ASEODBC' | 'DB2ODBC' | 'IQODBC' | 'MSSODBC' | 'ORAODBC' | 'MSACCESSODBC' | 'MYSQLODBC' | 'ULODBC' | 'ADSODBC' | 'ODBC' | 'SAJDBC' | 'ASEJDBC' | 'IQJDBC'
connection-info-string :
{ host-name:port-number [/dbname ] | data-source-name | sqlanywhere-connection-string }
CREATE SERVER server-name CLASS 'DIRECTORY' USING using-string
using-string : 'ROOT = path [ ;SUBDIRS = n ] [ ;READONLY = { YES | NO } ]' [ ;CREATEDIRS = { YES | NO } ]'
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 server-class-string abhängt.
Wenn eine ODBC-basierte Serverklasse verwendet wird, ist die USING-Klausel eine ODBC-Verbindungszeichenfolge, die 'dsn=data-source-name'
enthalten kann, um einen ODBC-Datenquellennamen anzugeben, bzw. 'driver=driver-name'
, um einen Treiber binär unter Unix oder eine Treiberdefinition unter Windows anzugeben.
Bei SQL Anywhere-Fremdservern (SAODBC-Serverklassen) kann der Parameter connection-info-string 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.
Die USING-Klausel kann auch einen lokalen oder globalen Variablennamen in {} enthalten. Beispiel: Eine USING-Klausel mit 'dsn={@mydsn}'
zeigt an, dass @mydsn eine SQL-Variable ist und dass der aktuelle Inhalt der Variablen @mydsn beim Erweitern der USING-Klausel ersetzt werden muss.
Die SQL-Variable variable-name, muss vom Typ CHAR, VARCHAR oder LONG VARCHAR sein.
Weitere Hinweise zur Verwendung von Variablen in der USING-Klausel, finden Sie unter Example 2 in Erstellen von Verzeichniszugriffsservern (Sybase Central).
Wenn eine JDBC-basierte Serverklasse verwendet wird, ist die USING-Klausel host-name:port-number [/dbname]. Hierbei gilt Folgendes:
host-name Der Computer, auf dem der Fremdserver läuft
port-number Die TCP/IP-Portnummer, auf der der Fremdserver auf Verbindungen wartet. Die Standard-Portnummer für SQL Anywhere ist 2638.
dbname Wenn Sie für SQL Anywhere-Fremdserver keinen dbname angeben, wird die Standarddatenbank verwendet. Für Adaptive Server Enterprise ist die Master-Datenbank der Standard. Wenn Sie dbname 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 zugänglich. 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 das Verzeichnis zugegriffen wird, schreibgeschützt sind und nicht geändert werden können. Standardmäßig ist dieser Wert auf NO gesetzt.
CREATEDIRS-Klausel Gibt an, ob mithilfe des Verzeichniszugriffsservers Verzeichnisse erstellt werden können. Der Standardwert ist NO.
Wenn Sie einen Fremdserver erstellen, wird er der ISYSSERVER-Systemtabelle hinzugefügt.
Syntax 1 Die CREATE SERVER-Anweisung definiert einen Fremdserver.
Die SAJDBC-, ASEJDBC- und IQJDBC JDBC-basierten Serverklassen werden nicht mehr empfohlen.
Um den ODBC-Treibermanager bei der Definition eines SQL Anywhere-Fremdservers zu umgehen, verwenden Sie die nachstehende Syntax, gefolgt vom Rest der connection-info-string:
CREATE SERVER remote-server CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere Native;DSN=my-dsn'; |
Mit dieser Syntax kann beim Ferndatenzugriff direkt der SQL Anywhere ODBC-Treiber geladen werden. Sie wird von Windows und Unix unterstützt. Das direkte Laden des SQL Anywhere ODBC-Treibers gewährleistet, dass der ODBC-Treiber der aktuellen Serverversion verwendet wird. Wenn der SQL Anywhere ODBC-Treiber nur für den Ferndatenzugriff verwendet wird, muss er nicht registriert werden.
Wenn die Anwendung auch Fremdserver verwendet, die keine SQL Anywhere-Server sind, oder wenn SQL Anywhere-Fremdserver vorhanden
sind, die ohne 'DRIVER=SQL Anywhere Native'
definiert wurden, benutzt der Ferndatenzugriff weiterhin einen Treibermanager der anderen Fremdserver.
Auf Unix-Plattformen können Sie den ODBC-Treibermanager auch über den mitgelieferten iAnywhere Solutions ODBC-Treiber referenzieren. Die Syntax lautet wie folgt:
USING 'driver=SQL Anywhere 12;DSN=my-dsn' |
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.
DBA-Berechtigung.
Unter Windows Mobile nicht unterstützt.
Automatisches Festschreiben (Autocommit).
SQL/2008 Erweiterung des Herstellers.
Im folgenden Beispiel wird unter Verwendung des SQL Anywhere ODBC-Treibers ein SQL Anywhere-Fremdserver namens testsa erstellt.
CREATE SERVER testsa CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere 12;DSN=remoteSA'; |
Im folgenden Beispiel wird der SQL Anywhere ODBC-Treiber direkt ohne den ODBC-Treibermanager geladen:
CREATE SERVER testsa CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere Native;DSN=remoteSA'; |
Im folgenden Beispiel wird unter Verwendung der ASE ODBC-Treibers ein Adaptive Server Enterprise (ASE)-Fremdserver namens ase_prod erstellt.
CREATE SERVER ase_prod CLASS 'ASEODBC' USING 'DSN=remoteASE'; |
Im 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'; |
Im folgenden Beispiel wird ein Verzeichniszugriffsserver erstellt, 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; |
Im folgenden Beispiel wird ein Verzeichniszugriffsserver erstellt, 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;;;.'; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |