Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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.

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)
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.
Anzeige

87 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige