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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige