Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi JOIN über unterschiedliche DBsysteme möglich? (https://www.delphipraxis.net/116108-join-ueber-unterschiedliche-dbsysteme-moeglich.html)

PASST 25. Jun 2008 10:21

Re: JOIN über unterschiedliche DBsysteme möglich?
 
Ich probiere es gerade im SQL Query Analyzer aus. Dort ist der innere SQL-String in 'Anführungszeichen'. Wie kriege ich dann dort das <DATUM> = '16/5/2008' in Anführungszeichen?

SQL-Code:
SELECT *
FROM OPENROWSET(
'MSDASQL','DRIVER={Microsoft Dbase driver (*.dbf)}',
'select * from \\server\pfad\tabelle
where datum >= <DATUM> ')

shmia 25. Jun 2008 10:24

Re: JOIN über unterschiedliche DBsysteme möglich?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von PASST
Wie kann ich denn unter MS SQL 20000 einen Linked Server einbinden?

Siehe Screenshots im Anhang.

PASST 25. Jun 2008 10:52

Re: JOIN über unterschiedliche DBsysteme möglich?
 
So richtig rund läufts das auch nicht.

Ich habe mir den Linked Server angelegt und dabei als Datenpfad einen UNC-Pfad angegeben. Führe ich das folgende Query am SQL Query Analyzer aus:
SQL-Code:
select * from openquery (DBASE, 'select * from tabelle')
erhalte ich je nachdem wo ich das Query ausführe entweder das korrekte Resultat oder eine Fehlermeldung.
Wenn ich lokal am Server, auf dem der SQL Server installiert ist, das Query ausführe, funktioniert alles.
Führe ich das Query an meinem Arbeitsplatz aus, auf dem ich auch den Query Analyzer installiert habe, so erhalte ich die Fehlermeldung:
SQL-Code:
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.
[OLE/DB provider returned message: '\\server\pfade' ist kein zulässiger Pfad. Stellen Sie sicher, dass der Pfad richtig eingegeben wurde und dass Sie mit dem Server, auf dem sich die Datei befindet, verbunden sind.]
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:  ].

shmia 27. Jun 2008 12:09

Re: JOIN über unterschiedliche DBsysteme möglich?
 
Zitat:

Zitat von PASST
So richtig rund läufts das auch nicht.
Ich habe mir den Linked Server angelegt und dabei als Datenpfad einen UNC-Pfad angegeben

Fang erst mal klein an und kopiere die dBase-Dateien auf den Server in ein lokales Verzeichnis.
Gut möglich, dass die Funktionen zum Zugriff auf dBase-Dateien aus der Computer Steinzeit kommen und mit diesem "neumodischen UNC-Zeugs" nichts anfangen können.
Und dann gäbe es den Servicepack #8 für die Jet-Engine (=Microsoft.Jet.OLEDB.4.0); vielleicht hilft's ja.

PASST 1. Jul 2008 11:08

Re: JOIN über unterschiedliche DBsysteme möglich?
 
So, ich habe jetzt in dieser Variante gelöst.
Zitat:

Zitat von PASST
:) Hurra, ich habe jetzt eine Variante gefunden, die mit UNC-Pfad funktioniert:

SQL-Code:
SELECT * FROM OPENROWSET(
'MSDASQL','DRIVER={Microsoft Dbase driver (*.dbf)}',
'SELECT * FROM \\SERVER\Pfade\Tabelle1.dbf')
Das einzige Problem ist noch, dass ich vorher das Byte für den MDX-Flag der dBase Dateien löschen muss. Das ist aber nicht wirklich ein Problem, da Clipper zwar diesen Flag setzt, aber selber nicht verwendet. Außerdem will ich wie gesagt die dBase Daten nur lesen und nichts schreiben.

Leider lässt sich diese Datei nicht bearbeiten, um den MDX-Flag zu löschen, wenn jemand sie (mit einem anderen Programm) geöffnet hat.
Kann man dem SQL-Server nicht sagen, dass er den MDX-Flag automatisch ignorieren soll?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.
Seite 3 von 3     123   

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