AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi JOIN über unterschiedliche DBsysteme möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

JOIN über unterschiedliche DBsysteme möglich?

Ein Thema von PASST · begonnen am 23. Jun 2008 · letzter Beitrag vom 1. Jul 2008
Antwort Antwort
Seite 1 von 3  1 23      
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

JOIN über unterschiedliche DBsysteme möglich?

  Alt 23. Jun 2008, 17:20
Datenbank: MS SQL Server • Version: 2000 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#2

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 23. Jun 2008, 17:28
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).
Gruß
Norman
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 23. Jun 2008, 17:56
Zitat von PASST:
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?..
Grundsätzlich gilt : alles geht. Notfalls muss das in eine Textdatei und dann wieder importiert werden.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 08:10
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 08:17
Per ADO kann man auch direkt auf dBase-Dateien zugreifen und dann auch über DB-Grenzen hinweg abfragen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 09:07
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.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 16:24
@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!
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#8

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 16:29
Hi,

Zitat:
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!
ich darf nochmal vorsichtig auf meinen Post #2 hinweisen
Suche in der Hilfe zum SQLQueryAnanlyser (BOL) mal nach "OPENROWSET"...
Gruß
Norman
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 16:32
Sorry, ich hab deine Antwort ganz vergessen. Jetzt wo ich die Hilfe gelesen habe, schaut das schon mal verdammt gut aus
Zitat:
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin' ;'';
Employees)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: JOIN über unterschiedliche DBsysteme möglich?

  Alt 24. Jun 2008, 16:44
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.
SELECT * FROM bestellung LEFT OUTER JOIN VerbindungServer1..TabelleXY ON .....
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz