Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einfügen mehrerer Datensätze in Datenbank

Einfügen mehrerer Datensätze in Datenbank
31.10.2005 19:20:12
Alex
Hallo,
ich beschäftige mich seit kurzem mit Datenbankzugriffen via VBA
und habe prompt ein ziemliches Problem - vielleicht kann mir
jemand helfen oder mir einen guten Link empfehlen.
Ich muss einige 10.000 Datensätze aus Excel in eine SQL Datenbank
schreiben und benütze dazu folgenden Code:

Sub WriteInDB()
Dim c As Long
Dim r As Long
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim w As Worksheet
Set w = Sheets(1)
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=TestServer.de;DATABASE=test;UID=Test;PWD=Test; OPTION=3"
conn.Open
conn.Execute "DROP TABLE IF EXISTS Alex"
conn.Execute "CREATE TABLE Alex(id int not null primary key, name varchar(20)," & "txt text, dt date, tm time)"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenKeyset
rs.Open "select * from Alex", conn
For r = 1 To 10000
rs.AddNew
For c = 1 To 5
rs(c - 1) = w.Cells(r, c)
Next c
Next r
rs.UpdateBatch 'dass dauert...
rs.Close
conn.Close
End Sub

Mit diesem Code funktioniert alles aber der UbdateBatch Befehl braucht
bald 10 Minuten!
Ich habe eine DSL Verbindung zum Server mit 192 Kbit/s -
während des UbdateBatch Befehls werden nicht mal 2kB/s übertragen.
Auslesen geht prima mit 220kB/s also kann es wohl nicht an der
Verbindung liegen.
Hat jemand eine Ahnung, Was da schief läuft?
Bin für jeden Vorschlag dankbar.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen mehrerer Datensätze in Datenbank
31.10.2005 19:44:51
frank
Hi,
"INSERT INTO SELECT FROM WHERE " ist das was Du suchst.
(genaueres: MySQL-Handbuch; Kap. 6; Insert-Syntax)
Frank
AW: Einfügen mehrerer Datensätze in Datenbank
31.10.2005 19:48:54
Frank
Hi,
Sorry hatte mit spitzen klammern geschrieben ;-)
Also:
"INSERT INTO zieltabelle [spalten] SELECT [spalten] FROM quelltabelle WHERE bedingung" ist das was Du suchst.
(genaueres: MySQL-Handbuch; Kap. 6; Insert-Syntax)
Anzeige
AW: Einfügen mehrerer Datensätze in Datenbank
31.10.2005 22:12:17
Alex
Hi,
Ich nehme an, dass führt man mit conn.execute aus?
Aber wie kriege ich mein Recordset in den
Befehl rein?
Na- ich werd erst mal das von Dir genannte Kapitel lesen.
Danke.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige