Autor Beitrag
mr_r0ssi
Hält's aus hier
Beiträge: 10

Win 98, Win 2000
D6 Prof
BeitragVerfasst: So 11.01.04 19:11 
kurze Frage: Wie kann ich mittels SQL unkompliziert Daten von einer Tabelle (DB1) nach einer anderen Tabelle kopieren, die sich in einer anderen DB befindet?
KidPaddle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: So 11.01.04 19:27 
Das ist datenbankabhängig und kann nicht pauschal beantwortet werden. Im Normalfall geht das garnicht, zumindest kenne ich keine Befehle für MS-SQL und Access. Das einzige was ich mir vorstellen kann ist, das Du den Name der Datenbank im SQL angibst, also in der Form:

Du bist in der DB2:
INSERT INTO TABLE SELECT * FROM DB1.TABLE

oder

INSERT INTO TABLE(Feldlist) SELECT Feldlist FROM DB1.TABLE

Gruß
KidPaddle
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 12.01.04 09:04 
So wie Du das gesagt hast, könnte es gehen (Datenbankabhängig, aber grundsätzlich stimmt das), aber leider nur in derselben DB, er will aber in einer andere DB kopieren.

Es gibt ein Tool (ist glaub ich manchmal bei Delphi dabei) das heißt DataPump, damit geht es auf jeden Fall.

Willst Du es in Deinem Programm machen, musst Du es leider Zeile für Zeile machen oder Du schreibst eine Stored Procedure, der Dir (Daten-)Zeile für (Daten-)Zeile einen SQL-Insert ausgibt, so würde ich es wahrscheinlich machen. Den kannst Du dann einfach in die IBScript-Kompo oder in einen Query einfügen und ausführen.
KidPaddle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: Mo 12.01.04 11:54 
Stimmt, an die Möglichkeit von einer Access zu einer Interbase zu kopieren hatte ich nicht gedacht. Oder will er aus einer MS SQL - Datenbank in eine andere MS SQL - Datenbank kopieren? Beide können auch auf der gleichen Maschine laufen.

Gruß
KidPaddle
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mo 12.01.04 13:56 
So, wenn Du innerhalb desselben RDBMS bleibst, geht es häufig, in dem man vor den Tabellenname einfach den Datenbanknamen setzt:

INSERT INTO Datenbank2.Tabelle (Feldlist) SELECT Datenbank1.Tabelle.Feldlist FROM Datenbank1.Tabelle

_________________
Ha! Es compiliert! Wir können ausliefern!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 12.01.04 15:09 
Das geht aber IMHO nicht bei Interbase, da brauchst Du eine weitere Verbindung, nur bei BDE und LocalSQL. Es wäre jetzt dann eben mal interessant welche DB er verwendet.
mr_r0ssi Threadstarter
Hält's aus hier
Beiträge: 10

Win 98, Win 2000
D6 Prof
BeitragVerfasst: Mo 12.01.04 17:07 
Vielen Dank fuer die anregende Diskussion. Ich haette es vielleicht etwas besser spezifizieren sollen. Mein Ansinnen ist es von Access DB's( die auf dem gleichen Rechner local 'laufen'), die Daten auszutauschen. Das ganze soll in der programmierten Anwendung passieren.
Aber wie es scheint, komme ich nicht daran vorbei, die Daten Zeile fuer Zeile zu kopieren. (Oder was ist eine Stored Procedure - ich kann mir bis jetzt noch nichts darunter vorstellen.) Vielen Dank im Voraus.

Stephan
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 12.01.04 18:41 
mr_r0ssi hat folgendes geschrieben:
(Oder was ist eine Stored Procedure - ich kann mir bis jetzt noch nichts darunter vorstellen.)

Wenn jemand nichts dazu schreibt, dann gehe erstmal davon aus, dass er Interbase oder BDE verwendet. Interbase kennt die Stored Procedures (manche andere größre DBs auch, nur anders). Das sind einfach Prozeduren, denen man Werte übergibt, die dann in der Datenbank rummodeln können und evtl. wieder Werte ausgeben. Die Sprache ist Delphi-ähnlich. Mit solchen SPs kann man wunderbar komplexe Aufgaben auf die DB-Hardware verschieben und damit auch Netzwerk-Resourcen sparen.