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 OLE DB- und ADO-Entwicklung

 

Microsoft-Verbindungsserver (Microsoft Linked Server) mit OLE DB einrichten

Sie können einen Microsoft-Verbindungsserver (Microsoft Linked Server) einrichten, der den SQL Anywhere OLE DB-Provider verwendet, um Zugriff auf eine SQL Anywhere-Datenbank zu erhalten. SQL-Abfragen können entweder mithilfe der 4-teiligen Tabellenreferenzsyntax von Microsoft oder mit der OPENQUERY SQL-Funktion von Microsoft durchgeführt werden. Im Folgenden finden Sie ein Beispiel der 4-teiligen Syntax:

SELECT * FROM SADATABASE..GROUPO.Customers

In diesem Beispiel ist SADATABASE der Name des Verbindungsservers, GROUPO ist der Tabelleneigentümer in der SQL Anywhere-Datenbank und Customers ist der Tabellenname in der SQL Anywhere-Datenbank. Der Katalogname wird ausgelassen (wie durch zwei aufeinander folgende Punkte angezeigt wird), da Katalognamen keine Funktion von SQL Anywhere-Datenbanken sind.

Die andere Form verwendet die OPENQUERY-Funktion von Microsoft.

SELECT * FROM OPENQUERY( SADATABASE, 'SELECT * FROM Customers' )

In der OPENQUERY-Syntax wird die zweite SELECT-Anweisung ('SELECT * FROM Customers') an den SQL Anywhere-Server zur Ausführung übergeben.

Um einen Verbindungsserver einzurichten, der den SQL Anywhere OLE DB-Provider verwendet, muss eine Reihe von Schritten ausgeführt werden.

♦  So richten Sie einen Verbindungsserver ein
  1. Füllen Sie die Seite General (Allgemein) aus.

    Das Feld Linked Server (Verbindungsserver) auf der Seite General (Allgemein) muss den Namen eines Verbindungsservers enthalten (wie z.B. SADATABASE in obigem Beispiel). Die Option Other data source (Andere Datenquelle) muss aktiviert und "SQL Anywhere OLE DB Provider" aus der Liste ausgewählt werden. Das Feld Product name (Produktname) muss einen ODBC-Datenquellennamen enthalten (z.B. "SQL Anywhere 11 Demo"). Das Feld Provider string (Provider-Zeichenfolge) kann zusätzliche Verbindungsparameter enthalten, wie die Benutzer-ID und das Kennwort (z.B. uid=DBA;pwd=sql). Die anderen Felder, wie etwa Data Source (Datenquelle) auf der Seite General (Allgemein), sollten leer bleiben.

  2. Wählen Sie die Provider-Option Allow Inprocess (InProcess zulassen) aus.

    Das zu verwendende Verfahren variiert abhängig von den verschiedenen Versionen von Microsoft SQL Server. In SQL Server 2000 bringt Sie die Schaltfläche Provider Options (Provideroptionen) auf die Seite, auf der Sie diese Option auswählen können. Klicken Sie in SQL Server 2005 mit der rechten Maustaste in der Strukturansicht Linked Servers/Providers (Verbindungsserver/Provider) auf den Anbieter SAOLEDB und wählen dann Properties (Eigenschaften), um das Kontrollkästchen Allow inprocess (InProcess zulassen) anzuzeigen. Wenn die Option InProcess nicht ausgewählt wurde, schlagen die Abfragen fehl.

  3. Wählen Sie die Optionen RPC und RPC Out (RPC-Ausgabe).

    Das zu verwendende Verfahren variiert abhängig von den verschiedenen Versionen von Microsoft SQL Server. In SQL Server 2000 gibt es zwei Kontrollkästchen, die für diese beiden Optionen aktiviert werden müssen. Diese Kontrollkästchen befinden sich auf der Seite Server Options (Serveroptionen). In SQL Server 2005 handelt es sich bei diesen Optionen um TRUE/FALSE-Einstellungen. Setzen Sie die beiden Werte jeweils auf TRUE. Die RPC-Optionen (Remote Procedure Call, Remoteprozeduraufruf) müssen ausgewählt sein, um gespeicherte Prozeduren bzw. Funktionsaufrufe in einer SQL Anywhere-Datenbank auszuführen und Parameter erfolgreich zu übergeben bzw. zu empfangen.