Seite 1 von 1

Eine ADT Tabelle in mehreren DD gleichzeitig

Verfasst: Fr, 26. Aug 2022 10:42
von Manfred
ich muß ein Problem lösen, das ich eine ADT Tabelle habe, die aber eigentlich in mehreren DD nutzen müßte. Geht sowas einfach (ohne weitere Probleme)? Geht sowas nicht, wie könnte man sowas lösen?

Re: Eine ADT Tabelle in mehreren DD gleichzeitig

Verfasst: Fr, 26. Aug 2022 11:28
von nightcrawler
geht nicht und das ist auch gut so. Wenn Du gemeinsame Daten benötigst, wie zB eine PLZ-Tabelle, dann erstelle ein generelles ADD und packe die Tabelle dort rein. Das ist dann für Struktur, Trigger usw zuständig.
In den anderen ADD erstellst Du einen Link zu diesem ADD. Damit Du in der Anwendung nichts umschreiben musst, erstelle eine View mit dem Namen der Tabelle, welche im Hintergrund auf die verlinkte Tabelle verweist:

Code: Alles auswählen

CREATE VIEW meinetabelle AS
SELECT * FROM meinlink.meinetabelle
Damit kannst Du auf meinetabelle zugreifen, im Hintergrund wird dies aber über die View auf die andere Datenbank umgebogen.

Re: Eine ADT Tabelle in mehreren DD gleichzeitig

Verfasst: Mo, 29. Aug 2022 19:35
von Manfred
was wäre denn, wenn ich mir ein DD anlege in dem mehrere Tabelle sind, die ich verschiedenen anderen DD zur Verfügung stellen möchte? Das komplette DD als View geht nicht? Und worin liegt der Unterschied zu LINKS? damit kann ich doch auch verschiedene DD verknüpfen, oder? Meine ich jedenfalls so gemacht zu haben, wenn ich vom einen DD ins andere was importieren will.

Code: Alles auswählen

INSERT INTO dd2.betriebshof(id,
	   						bez,
							kuerzel,
							nr)
SELECT id,
	   bez,
	   kuerzel,
	   nr
FROM dd1.betriebshof

Re: Eine ADT Tabelle in mehreren DD gleichzeitig

Verfasst: Mo, 29. Aug 2022 19:48
von Manfred
ich stelle gerade fest, das ist doch was ich mir vorstelle....

Code: Alles auswählen

select dd1tg.datum,
	   dd2fahrer.name
from dd1.tagesdienst dd1tg
left join dd2.fahrer as dd2fahrer ON dd2fahrer.id=dd1tg.idfahrer
und damit habe ich die LINKS erstellt

Code: Alles auswählen

EXECUTE PROCEDURE 
  sp_CreateLink ( 
     'dd1',
     'E:\ads\dd1\dd.add',
     TRUE,
     TRUE,
     FALSE,
     '',
     ''/* YOUR PASSWORD GOES HERE */ );
EXECUTE PROCEDURE 
  sp_CreateLink ( 
     'dd2',
     'E:\ads\dd2\dd.add',
     TRUE,
     TRUE,
     FALSE,
     '',
     ''/* YOUR PASSWORD GOES HERE */ );