Autor Beitrag
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 06.09.12 18:11 
Hallo zusammen!

Ich muss Datensätze von einer FireBird Datenbank in eine Andere FB-DB kopieren. Das Admin-Tool „IBOConsole“ kann das leider nicht. Es gibt zwar scheinbar andere Tools mit denen das geht, diese möchte ich mir jedoch nicht zulegen, da dieser Kopiervorgang nur ein einziges mal durchgeführt werden muss. Jetzt wollte ich das auf die „schnelle“ selber machen, mit SELECT * FROM Quelle und INSERT INTO Ziel. Nur geht das in diesem Fall nicht auf die schnelle, da die Tabelle sehr viele (ca.80) Spalten hat und diese zudem unmöglich benannt sind „z1_POS_1_LE_2“. Bei der üblichen Insert Methode (INSERT INTO Ziel („z1_POS_1_LE_2, ……..) values(„232322“,………) ist das eine unendliche Arbeit, bei der Tippfehler vorprogrammiert sind und ich habe keine Lust das alles für eine einmalige Aktion zu machen. Daher meine Frage, gibt es eine Möglichkeit, eine ganze DataTable in eine DB zu schreiben, alla INSERT INTO Ziel MeineTabelle. Stellt ADO.Net zufällig so eine Methode bereit und ich kenne sie nur nicht??? Die Tabellen sind identisch, von der Seite wird es schonmal keine Probleme geben.

Vielleicht hat hier wer eine Idee wie ich das elegant und schmutzig lösen kann?

_________________
Gruß
Christoph
Christoph1972 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 06.09.12 18:20 
Ich glaube das hier ist das passende: www.java2s.com/Code/...etableinDatabase.htm

_________________
Gruß
Christoph
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 06.09.12 19:36 
Zitat:
ist das eine unendliche Arbeit, bei der Tippfehler vorprogrammiert sind und ich habe keine Lust das alles für eine einmalige Aktion zu machen.

Zitat:
Vielleicht hat hier wer eine Idee wie ich das elegant und schmutzig lösen kann?


Du kannst scheinbar programmieren als schreib dir ein Programm das die Tabellenmetadaten ausliest und dir dein Select/Insert generiert.


Edit:

Hab mir gerade deinen Link angesehen. Wenn du entsprechend dem Code deine DataTable füllst kannst du danach einfach den Modified State der einzelnen Rows ändern. Dazu in einem foreach je Row die SetAdded Methode aufrufen und danach die DataTable durch einen 2.ten DataAdapter (entsprechend dem ersten nur mit geändertem Connectionstring) jagen.
Christoph1972 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Do 06.09.12 19:51 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:

Du kannst scheinbar programmieren als schreib dir ein Programm das die Tabellenmetadaten ausliest und dir dein Select/Insert generiert.

Edit:

Hab mir gerade deinen Link angesehen. Wenn du entsprechend dem Code deine DataTable füllst kannst du danach einfach den Modified State der einzelnen Rows ändern. Dazu in einem foreach je Row die SetAdded Methode aufrufen und danach die DataTable durch einen 2.ten DataAdapter (entsprechend dem ersten nur mit geändertem Connectionstring) jagen.


Hallo Ralf!

Danke für deine Anregungen (wobei ich bei der ersten nicht verstanden habe was du meinst (aber egal!))

Bei der zweiten Anregung war meine Idee ähnlich. Ich hätte einefach neue Rows, mit den Daten, in einer Tabelle angelegt und dann ein Update durchgeführt, ich denke das sollte genau so gut gelingen, oder?

_________________
Gruß
Christoph