🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #137524

Kopiowanie danych do tabeli MySQL - optymalizacja recordeset-u

#137524
From: PB
Date: Thu, 14 Sep 2017 08:32
69 lines
2706 bytes
Witam,
Mam takie pytanie.
Posiadam dwie tabele podłączone do MS Access-a.
Tabele podłączone są przez ODBC - jedna z SQL Server-a "lokalnie" a 
druga do MySQL-a serwer zdalny - hosting.

I teraz tak. Muszę aktualizować dane na MySQL-u co jakiś czas np. raz w 
tygodniu. Tabel z niema identyczne. Przy transferze na MySQL dodaje 4 
pola z lokalnej bazy, ale to nie jest problem.

Moje rozwiązanie działa, tylko niestety nie jest chyba najlepsze - przy 
paczce 100 000 rekordów trwa to bardzo długo, nawet się zawiesza.

Moja funkcja:

--
Function fAktualizujTabele()
Debug.Print "start: " & Now()
     Set conn = CurrentProject.Connection
     Set rst = New ADODB.Recordset
     Set rst2 = New ADODB.Recordset

     rst.Open "SELECT * FROM tbl_SQLServer where id<100000", conn, 
adOpenKeyset, adLockOptimistic
     rst2.Open "tbl_MySQL", conn, adOpenKeyset, adLockOptimistic

     rst.MoveLast
     rst.MoveFirst

     If rst.BOF And rst.EOF Then
         MsgBox "brak danych"
     End If

     Do While Not rst.EOF
             With rst2
               .AddNew
'              Pól jest zdecydowanie więcej, podaję tylko kilka przykład
                 rst2("id") = rst("id")
                 rst2("p_date") = rst("p_date")
                 rst2("p_time") = rst("p_time")
                 rst2("desc") = rst("desc")
		rst2("who") = "Admin"
               .Update
             End With

         rst.MoveNext
     Loop

     Set rst = Nothing
     Set rst2 = Nothing
     conn.Close
     Set conn = Nothing

Debug.Print "end: " & Now()


End Function

----
Założenie:

rst - pobieram dane z tabeli tbl_SQLServer z warunkiem where
następnie idę po kolei po każdy rekordzie i wrzucam do tabeli tbl_MySQL 
wykorzystując rst2.

Czy mogę to zrobić lepiej jak ??

dzięki za pomysły :)
PB
Technical Details
Message-ID: <opdeqk$mfi$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: PB <pawelboguszewski@gazeta.pl>
Newsgroups: pl.comp.bazy-danych.msaccess
Subject: Kopiowanie danych do tabeli MySQL - optymalizacja recordeset-u
Date: Thu, 14 Sep 2017 10:32:20 +0200
Organization: ATMAN - ATM S.A.
Lines: 75
Message-ID: <opdeqk$mfi$1@node2.news.atman.pl>
NNTP-Posting-Host: 93.174.25.53
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1505377940 23026 93.174.25.53 (14 Sep 2017 08:32:20 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 14 Sep 2017 08:32:20 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
X-Mozilla-News-Host: news://news.atman.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit