vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Re: JOIN über verschiedene Datenbanken 
Autor: VIVAX
Datum: 21.08.09 07:33

Hi Marco,

hier mal ein Beispiel wie du es lösen kannst.

Also - du mußt die Tabelle DB2 & DB1 Datenbank in eine Dataset laden welches du <ds> nennst.
Wenn die Daten im Dataset sind rufst, du den unten gezeigten Code auf.

Was passiert !

Das Dataset wird analysiert und in deine Datenbank: Source=test.mdb (ACCESS)
wird eine Tabelle mit den Spalten erstellt und die Zeilen werden in die Tabelle kopiert/geschrieben.
Wenn du beide Tabellen kopiert hast, kannst du wie gewohnt in Access arbeiten.

0 = Connection zur Access datei

1 = Create Befehl für Tabelle in Access Datenbank erstellen

2 = WICHTIG!!!! Befehl für Access aufbereiten
Hier mußt du SQL Befehl aufbereiten, dass er von Access akzeptiert wird.
In diesem Beispiel wird alles in einen Text geändert.
Wenn du für deine Abfrage Datum oder Zahlfelder benötigst wird es etwas mehr Arbeit
beim erstellen der Tabelle und dem Schreiben der Datensätze.

3 = Create Befehl ausführen
Tabelle erstellen und die Datensätze Zeilenweise schreiben.
In meinen Test benötigt Access ca. 1 Sekunde für 10000 Datensätze.


    Private Sub WriteToAccess()
 
        '0
        'Connection zur Access datei
        Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
          "Source=test.mdb")
        Dim tabellenname As String = "testdb"
 
        '1
        'Create Befehl für Tabelle in Access Datenbank erstellen
        Dim sb As New StringBuilder()
        sb.Append("CREATE TABLE ")
        sb.Append(tabellenname)
        sb.Append("(")
        For Each field As DataColumn In dt.Columns
            sb.AppendFormat("  {0} {1},", field.ColumnName, _
              field.DataType.ToString())
        Next
 
 
        '2
        'Befehl für Access aufbereiten
        sb.Append(")")
        sb.Replace(",)", ")")
        sb.Replace("System.", "")
        sb.Replace("Int16", "String")
        sb.Replace("Int32", "String")
        sb.Replace("Boolean", "String")
        sb.Replace("Single", "String")
 
 
        '3
        'Create Befehl ausführen
        Dim cmd As New OleDbCommand(sb.ToString(), con)
 
        Try
            con.Open()
            cmd.ExecuteNonQuery()
 
            'Status aller Datensätze auf added setzen
            For Each row As DataRow In ds.Tables(0).Rows
                row.SetAdded()
            Next
 
            'In Access Datenbank schreiben
            Dim dadapter2 As New OleDbDataAdapter()
            dadapter2.SelectCommand = New OleDbCommand("Select * from " & _
              tabellenname, con)
            Dim custCB As New OleDbCommandBuilder(dadapter2)
 
            dadapter2.Update(ds)
 
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            con.Close()
        End Try
 
 
    End Sub

Gruss
VIVAX

}
}
}

1:0 für Visual Basic.NET

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
JOIN über verschiedene Datenbanken1.297Access-Dino10.08.09 14:49
Re: JOIN über verschiedene Datenbanken752Zero-G.20.08.09 15:15
Re: JOIN über verschiedene Datenbanken716Access-Dino20.08.09 20:13
Re: JOIN über verschiedene Datenbanken733VIVAX21.08.09 07:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel