vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

VB & Datenbanken
ADOX.Catalog.Create wartet auf Fertigstellung eines zuvor gestarteten Imports 
Autor: Carsten01
Datum: 14.03.06 11:51

Hallo zusammen,

in einem Programm erstelle ich über ADOX.Catalog.Create eine leere MDB und in diese importiere ich über eine SELECT-Anweisung Daten von einer IBM-DB2 Datenbank (immer den Inhalt einer ganzen Tabelle).

Den Import von DB2 nach Access führe ich mit folgender Funktion durch (Kann auch für andere ODBC-Verbindungen verwendet weden):

Public Function ODBCTableToMDB_ASYNCH(sNewMDB As String, sMDBTable As String, _
  JetVersion As Jet_EngineVersion, sDSN As String, sDSNUID As String, sDSNPWD _
  As String, sODBCTableSpace As String, sODBCTable As String, sReportID As _
  String, sTimecode As String, Optional bKillOldMDB As Boolean = False) As _
  Boolean
 
On Error GoTo EndFunc
Dim Con As ADODB.Connection
Dim stmpErrDesc As String
 
Set Con = New ADODB.Connection
 
 
If bKillOldMDB = True And Dir$(sNewMDB) <> vbNullString Then Kill (sNewMDB)
 
 
'MDB erstellen
CreateJetDatabase sNewMDB, JetVersion
 
'** ODBC Tabelle in Acess importieren **
'Verbindung zu Access-Datenbank erstellen
Con.Mode = adModeReadWrite
Con.Open mConnString & sNewMDB
 
If sODBCTableSpace <> vbNullString Then sODBCTable = sODBCTableSpace & "." & _
  sODBCTable
 
'[ODBC;DSN=" ... der folgenden Zeile ist kein Kommentar, wurde von vbarchiv" & _
  "aber so interpretiert:
 
Con.Execute "SELECT * INTO [" & sMDBTable & "] FROM [" & sODBCTable & "] IN ''" & _
  "[ODBC;DSN=" & sDSN & ";UID=" & sDSNUID & ";PWD=" & sDSNPWD & ";];", , _
  adAsyncExecute + adExecuteNoRecords
 
'........
'..........
'An dieser Stelle gebe ich einen UDT zurück um Später den Satus des 
' Asynchronen-Imports abzufragen (über Connection.State).
 
End Function
Die Funktion zum Erstellen einer leeren MDB sieht wie folgt aus:

Public Function CreateJetDatabase(DBName As String, Optional JetVersion As _
  Jet_EngineVersion = [JET3X = 4 (Access 95 + 97)], Optional LockingMode As _
  Jet_LockingMode = PAGELOCKING) As Boolean
 
    On Error GoTo Fehler
 
    Dim strCnn  As String
    Dim cat     As ADOX.Catalog
 
    Set cat = New ADOX.Catalog
 
    strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";"
 
    'DB erzeugen
    cat.Create strCnn
 
    Set cat = Nothing
    CreateJetDatabase = True
 
Exit Function
 
Fehler:
CreateJetDatabase = False
Err.Raise 1, "Function ""CreateJetDatabase""", "Cant't create MDB '" & DBName & _
  "' Error: " & Err.Number & " " & Err.Description
 
End Function
Nun mein Problem: Wenn gerade ein Import (ODBCTableToMDB_ASYNCH) läuft und während dessen ich versuche parallel einen zu starten, bleibt die Ausführung am Punkt. "cat.Create strCnn"
in der Funktion "CreateJetDatabase" stehen und legt erst die MDB an, wenn der zuvor gestartete Import einer anderen Tabelle abgeschlossen ist.

Ist der ADOX.Catalog während des Importes gesperrt? Wie kann ich erreichen das auch wenn ein Import läuft, sofort eine neue Datenbank erstellt wird.
(Bei jedem Import wird eine neue MDB erstelllt, in der nur eine Tabelle der IBM-DB2 importiert wird - Ich greife also nicht auf die Tabelle zu, bei der der Import läuft.)
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ADOX.Catalog.Create wartet auf Fertigstellung eines zuvor g...1.193Carsten0114.03.06 11:51
Re: ADOX.Catalog.Create wartet auf Fertigstellung eines zuv...743Carsten0114.03.06 12:54
Re: ADOX.Catalog.Create wartet auf Fertigstellung eines zuv...766Carsten0114.03.06 13:38
Re: ADOX.Catalog.Create wartet auf Fertigstellung eines zuv...840Carsten0114.03.06 15:07
Re: ADOX.Catalog.Create wartet auf Fertigstellung eines zuv...703Carsten0115.03.06 14:08

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