Brücke zwischen zwei mit ODBC Datenquellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VBDev.

    Brücke zwischen zwei mit ODBC Datenquellen

    Hallo!
    Ich habe folgende Frage, da ich nicht weiß wie ich optimalerweise da rangehen soll. Es gibt sicher viele wege, es sollte aber auch einigermaßen Performant funktioneren.

    Auf einem Server betreibe ich eine MySQL/MariaDB für eine Webanwendung. Diese bekommt einmal wöchentlich Daten von einer IBM i5. Da der Eingriff nur bedingt möglich ist, bleibt nur das Query Interface der i5. Dort bekommt man Quasi einfache Datenbankdateien heraus, auf die ich mittels eines ODBC Treibers zugreifen kann.

    Nun würde ich einige Tabellen aus der i5 Datenbank in die MySQL Datenbank synchronisieren. Also die Tabellen von A nach B transferieren. Eine andere Verbindungsmöglichkeit als die ODBC Schnittstelle ist nicht möglich.

    Die Abfragestruktur ist relativ einfach: Alte Tabellen löschen, neue Tabellen aus der i5 hinein. Die Struktur der Tabellen muss identisch sein.

    Was wäre da der preferierte Weg?

    MfG. VBDev
    var coffee = new coffee();
    if(coffee.empty)
    {
    coffee.refill();
    } else {
    coffee.drink();
    }
    Alte Tabelle löschen und neue rein geht natürlich nur, wenn die alte irrelevant ist. Wenn das so ist, dann ist das vermulich der einfachste und auch schnellste Weg.
    Ich würde zum Löschen TRUNCATE verwenden.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Und wie würdest du die Verbindung zu den Datenbanken aufbauen? Da gibt es ja auch eine vielzahl an möglichkeiten...
    var coffee = new coffee();
    if(coffee.empty)
    {
    coffee.refill();
    } else {
    coffee.drink();
    }
    ​Eine andere Verbindungsmöglichkeit als die ODBC Schnittstelle ist nicht möglich


    Via ODBC? Für MySQL gibt es eine NET Portierung und ODBC:
    dev.mysql.com/downloads/connector/odbc/5.3.html

    Ich denke ich würde die Daten von der IBM DB in einen Datatable (bzw Dataset) laden und diese in wieder MySQL einfügen
    Das ist meine Signatur und sie wird wunderbar sein!
    Okay den Connector kannte ich nicht, der müsste aber eigentlich garnicht nötig sein, wenn auf dem System der entsprechende ODBC Treiber vorhanden ist, oder?

    Ich bin mir nur nicht sicher wie ich das Sauber lösen kann, wenn viele Datentabellen beider Datenbanken ins Spiel kommen, so haben beide Systeme (Maria DB und DB2) jeweils eine Tabelle namens test1, test2, test3 usw. Alle jeweils zueinandergehörenden Tabellen haben die gleichen Strukturen und rein Theoretisch kann jede der Tabellen auf dem Maria DB mit Truncate geleert werden, um sie anschließend wieder mit den Daten aus der IBM DB2 zu füllen...

    Mein Problem ist dass ich nicht weiß wie ich vom Code her ansetzen soll, um das ganze halbwegs performant und sauber zu gestalten. Schwer kann das ja nicht sein, aber zwei ODBC Verbindungen und schließlich knappe 10 Tabellen mit irgendwelchen SQL Queries rumschieben ist doch bestimmt nicht optimal...
    var coffee = new coffee();
    if(coffee.empty)
    {
    coffee.refill();
    } else {
    coffee.drink();
    }