www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



JOIN über mehrere Datenbanken
Autor:  Tom
E-mail:  Antworten bitte nur in das Forum!
Datum:  21.10.2004 10:02:04
Subject:  JOIN über mehrere Datenbanken
Bezug zum Buch: 
Message:  Hi,

habe ein sehr kniffliges Problem. Habe in meinem VB6 Programm eine Tabelle auf einer DB2-Datenbank (diese ist per OLE verknüpft) und eine Access-DB (auch per OLE verknüpft). Nun muß ich eine DB2 Tabelle per JOIN mit einer Access-Tabelle verknüpfen. Da beide Tabellen in unterschiedlichen DB's liegen kann ich nicht mit
"Set rs = New ADODB.Recordset"
"rs.open SELECT * FROM DB2, ACCESS WHERE ..."
arbeiten, da ich ja einen Datenbank-Connct mitgeben muß (DB2 oder ACCCESS). Die DB2 Tabelle erst in Access laden ist auch sinnlos, da diese knapp 2 Millionen Datensätze hat und damit nicht perfomant ist. Z.Z. lese ich die Access Tabelle und gehe für jeden Datensatz auf die DB2 Tabelle um den entspr. Datensatz dort zu suchen.
Dies Anwendung war vorher eine reine Access-Anwendung und soll nun in VB umgeschrieben werden.
Dies ist auch nicht so perfomant, da ich zwar nur 100.000 Datensätze in der Access-Tabelle habe, jedoch dadurch daß ich jedesmal ein Recorset für den entspr. Datensatz öffne, auslese und wieder schließe ist dies auch sehr langwierig. Die DB2- Tabelle in Access einbinden möchte ich nicht, da wir Access später ablösen möchten.
Gibt es irgendeine Möglichkeit die ganze Sache perfomanter zu realisieren ??? Am besten irgendeine Möglichkeit wo ich in einem SQL-Statement beide Datenbanken ansprechen kann ??? Eigentlich ist das doch ein übliches Problem in der EDV, oder ???? Man hat doch nicht immer nur eine Datenbank, gerade in größeren Firmen sind verschiedene DB’s im Einsatz die verknüpft werden müssen.

Hier der Ursprungscode-Code aus der original Access-Anwendung kommt:

strsql = "INSERT INTO access_Neue_Tbl (" &
"Feld1,Feld2,Feld3,Feld4)" & _
"SELECT access_Tbl_2.Feld1, Access_Tbl_2.Feld2, "       
"DB2.Feld1, DB2.Feld2 FROM access_Tbl_2, DB2 " &
"WHERE access_Tbl_2.Feld3= DB2.Feld3 AND " & _
"access_Tbl_2.Feld4= DB2.Feld4; "

So habe ich es bisher in VB6 ausprogrammiert (war bis jetzt am performantesten)

strsql = "SELECT * FROM access_Neue_Tbl;"
Set rs_BD2 .Open SELECT * FROM access_Tbl_2, ACCESS, ,
        adLockOptimistic, adCmdText
Set td.Open SELECT * FROM access_Neue_Tbl, ACCESS, ,
        adLockOptimistic, adCmdText
While Not rs_BD2.EOF
   td.AddNew
   td.Fields("Feld1“) = rs_BD2.Fields("Feld1")
   td.Fields("Feld2") = rs_BD2.Fields("Feld2")
   GetDB2Felder (rs_BD2.Fields("Feld3"),, rs_BD2.Fields
          ("Feld4"), str_Var1, str_Var2)
   td.Fields("Feld3") = str_Var1
   td.Fields("Feld4") = str_Var2
   td.Update
   rs_BD2.MoveNext
Wend


' Zugriff auf die DB2 und die Felder auslesen
Public Function GetDB2Felder (m_Where1 As String,      
        m_Where2 As String, ByRef m_Var1 As String,
        ByRef m_Var2 As String)

rs_Translate.Open "SELECT * FROM DB2.TABELLE WHERE " & _
        "DB2.TABELLE.Feld3 = " & m_Where1 &
        " AND DB2.TABELLE.Feld4", DB2
If Not rs_Translate.EOF Then
       m_Var1 = rs_Translate.Fields("Feld1")
       m_Var2 = rs_Translate.Fields("Feld2“)
   End If
END FUNCTION    

Über Hilfe wäre ich sehr dankbar

Merci im voraus

Gruß Tom


Antworten

  Zurück zum Forum



 Klassische Programmierung (Scripting, COM) -- Windows Scripting, VBScript, VB6, u.a.
 JOIN über mehrere Datenbanken von Tom  am 21.10.2004 10:02:04 AM
 Re: JOIN über mehrere Datenbanken von TimoBallin  am 22.10.2004 8:54:38 AM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019