AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankanbindung Fastreport3
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankanbindung Fastreport3

Offene Frage von "ratloser"
Ein Thema von ratloser · begonnen am 7. Jan 2007 · letzter Beitrag vom 8. Jan 2007
Antwort Antwort
ratloser

Registriert seit: 4. Mai 2005
Ort: Linz
36 Beiträge
 
#1

Datenbankanbindung Fastreport3

  Alt 7. Jan 2007, 22:51
Datenbank: MSDE und ACCESS • Zugriff über: ADO
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
Vielen Dank!

Konrad
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Datenbankanbindung Fastreport3

  Alt 8. Jan 2007, 08:06
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
Uwe
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Datenbankanbindung Fastreport3

  Alt 8. Jan 2007, 08:13
Wie stellst du dir denn die "unmögliche" SQL-Anweisung vor? So etwa?

Select * From SQLSERVER..Tabelle1 Join ACCESS..Tabelle2 .... 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:

MySelect := Format ('Select * From SQLServerTabelle Where Field in (%s)',[s]); Das ergibt dann die Anweisung

Select * From SQLServerTabelle Where Field in (1,2,3,4) Wobei die '1,2,3,4' ja aus der Access-Tabelle kommen.

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
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:48 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