![]() |
Datenbank: MSDE und ACCESS • Zugriff über: ADO
Datenbankanbindung Fastreport3
Hallo!
Hab mal wieder ein Problem! Ich hab eine kleine Applikation geschrieben und möchte mit Fastreport ein Auswertung machen. Folgendes Problem: Die Applikation soll Daten aus zwei Fremdprogrammen auswerten, beide Datenbanken bestehen und sind fix. Eine Applikation hat eine große Datenbank - MSDE. In der zweiten Datenbank - ACCESS - sind nun Suchkriterien, die sich auf die MSCE-Datenbank beziehen. Wie kann ich in Fastreport die Datenbanken MSCE und ACCESS verknüpfen - ich finde derzeit keinen Weg, jeweils die Datenbank alleine - no problem - Daten filtern funzt ebenso in beiden getrennt, aber wie kann ich eine SQL-Anweisung schreiben, dass die Daten in der SQL-Datenbank auf Grund von Einträgen in der ACCESS-Datenbank gefiltert werden. Danke für Eure Hilfe. LG Ratloser |
Re: Datenbankanbindung Fastreport3
Dir wird wohl nichts anderes übrig bleiben, dich mit beiden DB's zu verbinden, die Suchkriterien abzufragen und dann eine Query auf die andere DB bzw. Tabelle ausführen.
Die Query übergibst Du dann Fastreport. Uwe |
Re: Datenbankanbindung Fastreport3
Wie stellst du dir denn die "unmögliche" SQL-Anweisung vor? So etwa?
SQL-Code:
Wenn Die Anzahl der Eigenschaften aus z.B. Access limitiert ist, dann kannst du dir die Filterkriterien aus Access ziehen und die Tabelle im SQL-Server über den 'IN' Operator rausholen. Dazu bastelst Du dir einen (vielleicht ziemlich langen) String, der die einzelnen Items durch Komma getrennt enthält (so: s := '1,2,3,4') und bepselst ihn dann in deine SQL-Anweisung mit Format:
Select * From SQLSERVER..Tabelle1 Join ACCESS..Tabelle2 ....
Delphi-Quellcode:
Das ergibt dann die Anweisung
MySelect := Format ('Select * From SQLServerTabelle Where Field in (%s)',[s]);
SQL-Code:
Wobei die '1,2,3,4' ja aus der Access-Tabelle kommen.
Select * From SQLServerTabelle Where Field in (1,2,3,4)
Wenn allerdings die Access-Tabelle vom SQL-Server aus sichtbar ist, dann lies mal in der SQL-Server Hilfe über 'OPENROWSET' nach, denn das öffnet eine externe Tabelle per ADO. Dieses OPENROWSET liefert quasi eine Tabelle, mit der Du dann ganz normal auf dem SQL-Server arbeiten kannst, so etwa:
SQL-Code:
Select *
from OPENROWSET (...) alias MyAccessTable Join MyTable on MyAccessTable.AccessField = MyTable.MSDEField |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 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