![]() |
Datenbank: SQL-Server 2000 • Zugriff über: BDE
SQL Abfrage auf verscheidene DB
Hallo,
ich brauche aus Delphi eine SQL-Abfrage auf verschiedene DBs auf verschiedenen SQL-Servern (Master-Detail) Vereinfacht etwa so:
Delphi-Quellcode:
Da sich beide benutzte Tabellen in verschiedenen Datenbanken befinden, muss ich irgendwie den Alias bzw. Datenbanknamen mit übergeben, blos wie?
Query1.Close;
Query1.SQL.Clear; Query1.SQL.ADD('SELECT A.Auftrag,A.Kunden_nr,K.Kunde FROM AUFTRAG A,Kunde K where A.Kunde = ''Mueller''); Query1.Open; Ich arbeite mit einer Datasource, die ich aber einer DB zugordnet habe. Datasource mit 2 DB's??? Danke jangbu [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: SQL Abfrage auf verscheidene DB
Du mußt im MS SQL Server einen Link auf die andere DB einrichten.
Ist die andere DB auch ein MS SQL Server oder evtl. nur eine ander DB auf dem gleichen Server? |
Re: SQL Abfrage auf verscheidene DB
Hallo,
es sind beides MS-SQL. Da die verwendete Datasource "einer" DB zugewiesen ist funktioniert das nicht mit Datasource. Ich müsste also irgendwie die Datenbank(name/alias) mit in den SQL-String einbauen: select .. DB1.TabelleA, DB2.TabelleB jangbu |
Re: SQL Abfrage auf verscheidene DB
|
Re: SQL Abfrage auf verscheidene DB
Danke nahpets,
war schon irgendwie klar, nur hat die Syntax nicht gepasst (..DB1.Tabelle1 :( => ..[DB1].dbo.[Tabelle1] :-D ). Danke jetzt passt's! jangbu |
Re: SQL Abfrage auf verscheidene DB
Zitat:
|
Re: SQL Abfrage auf verscheidene DB
Das klappt noch nicht!
Die Daten werden in einem DBGrid angezeigt. Das DBGrid hängt an einer DataSource und dieses wiederum an der Query. Der Query muss jedoch "eine" DB (DatabaseName) zugeordnet werden. Hier liegt das Problem: da sich die in der Query abgefragten Felder in verschiedenen DB befinden. Ich kann mich drehen und wenden die (Delphi)Query sieht entweder die Felder der einen oder der anderen DB.
Delphi-Quellcode:
Wie meinst Du das mit dem Link auf den anderen SQL-Server?
Query1.Close;
Query1.SQL.Clear; Query1.SQL.ADD('SELECT A.Auftrag,A.Kunden_nr,K.Kunden_name FROM AUFTRAG.dbo.AUFT A, Kunde.dbo.Knd K where A.Kunde = K.Knr); Query1.Open; Danke jangbu [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: SQL Abfrage auf verscheidene DB
Hallo,
Zitat:
Durch diesen Link wird der Datenbank, in der der Link eingerichtet wird, eine Datenbank auf einem anderen Server bekannt gemacht, mit der Folge, dass der Zugriff auf den zweiten Datenbankserver vom ersten Datenbankserver gemacht wird. Dadurch ist für die Anwendung nicht zu sehen, dass sie eigentlich auf mehrere Datenbanken auf unterschiedlichen Server zugreift. Daher benötigts Du in Deiner Query auch nur einen DatabaseName und zwar den der Datenbank, auf der der Link eingerichtet wurde. |
Re: SQL Abfrage auf verscheidene DB
sorry, bin erst jetzt wieder da. Habe direkt mit dem Enterprice Manager auf einem SQL-Server einen anderen als Verbindungsserever eingerichtet. Dabei mehrer Varianten ausprobiert Servertyp (Microsoft OLE Provider for SQL-Server mit Providerstring bzw. direkt nur über Angabe des Servernamens). Egal wie, ich sehe immer nur die Tabellen der master-db? Warum sehe ich nicht "meine" Datenbanken? Was muss ich tun damit ich auch die anderen DB sehe?
Danke jangbu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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