![]() |
Datenbank: MS SQL Server • Version: 2000 • Zugriff über: ADO
JOIN über unterschiedliche DBsysteme möglich?
Hallo allerseits,
ich habe mal wieder ein seltsames Vorhaben. Es handelt sich eigentlich nur um eine einzige Abfrage und im Resultat bleibt die Zahl der Datensätze sicherlich weit unter 1000. Ich möchte eine Verknüpfung zwischen zwei unterschiedlichen Datenbanksystemen erzeugen. Einerseits habe ich Daten in einer dBase-Datei, die ich mit Daten aus einer MS SQL Server 2000 Datenbank verknüpfen möchte. Geht das überhaupt? Der umständliche Umweg wäre: 1) Die benötigten dBase-Daten abfragen, ich benötige [Name, PersNr, DatevNr]. 2) Das Resultat des Feldes [Datevnr] in einen String der Form '(1, 17, 134, 135, 144, 150)' zu übertragen. 3) Diesen String in die Where-Klausel der Abfrage auf die SQL Server DB einbinden. 4) Dieses Resultat der SQLServer-Abfrage wieder je Datensatz mit der Abfrage aus 1) abgleichen, so dass ich die richtige Schreibweise des Namens und die richtige PersNr habe. Ihr seht, recht umständlich das ganze. Geht es auch einfacher? Gruß Peter |
Re: JOIN über unterschiedliche DBsysteme möglich?
Hi,
ich würde eine SP für den SQLServer schreiben, in der die externen Daten mittels OPENROWSET hereingeholt und dann mit den entsprechenden SQL-Daten verarbeitet werden (Ob das auch mit dBase geht, kann ich allerdings nicht sagen). |
Re: JOIN über unterschiedliche DBsysteme möglich?
Zitat:
|
Re: JOIN über unterschiedliche DBsysteme möglich?
Also ich würde mir die Dbase-Daten in eine MemTable (z.B. von den RxKomponenten) laden.
Dann kannst Du in der Abfrage für MS-SQL darauf zugreifen. |
Re: JOIN über unterschiedliche DBsysteme möglich?
Per ADO kann man auch direkt auf dBase-Dateien zugreifen und dann auch über DB-Grenzen hinweg abfragen
|
Re: JOIN über unterschiedliche DBsysteme möglich?
In µ$ SQL Server kannst Du iirc externe Datenbanken über OLE DB/ODBC einbinden. Dann macht alles der SQL Server und Du brauchst Dir Clientseitig keinen mehr abzubrechen.
|
Re: JOIN über unterschiedliche DBsysteme möglich?
@joachimd
Wie ich per ODBC auf dbase Daten zugreife, ist mir bekannt. Wie kann ich aber diese einer MS SQL Datenbank zur Verfügung stellen? Ein reiner Lesezugriff würde mir auch reichen! |
Re: JOIN über unterschiedliche DBsysteme möglich?
Hi,
Zitat:
Suche in der Hilfe zum SQLQueryAnanlyser (BOL) mal nach "OPENROWSET"... |
Re: JOIN über unterschiedliche DBsysteme möglich?
Sorry, ich hab deine Antwort ganz vergessen. Jetzt wo ich die Hilfe gelesen habe, schaut das schon mal verdammt gut aus :)
Zitat:
|
Re: JOIN über unterschiedliche DBsysteme möglich?
Alternativ kann man auch einen sog. Verbindungsserver einrichten.
Zu finden im Enterprise Manager unter "Sicherheit". Im Prinzip werden die gleichen Techniken wie bei OPENROWSET() verwendet, nur dass man sich von den genauen Details der Verbindung unabhängig macht. Hier ein Beispiel für einen Join über zwei Datenbanken. Tabelle bestellung ist in der aktuellen Datenbank, TabelleXY wird aus einer externen Datenbank gelesen.
SQL-Code:
SELECT * FROM bestellung LEFT OUTER JOIN VerbindungServer1..TabelleXY ON .....
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz