🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Kopiowanie danych do tabeli MySQL - optymalizacja recordeset-u

#137526
From: PB
Date: Thu, 14 Sep 2017 08:36
79 lines
3196 bytes
Próbowałem z DAO - to samo :(


W dniu 2017-09-14 o 10:32, PB pisze:
> 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: <opdf2s$6um$2@node1.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
References: <opdeqk$mfi$1@node2.news.atman.pl>

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: Re: Kopiowanie danych do tabeli MySQL - optymalizacja recordeset-u
Date: Thu, 14 Sep 2017 10:36:44 +0200
Organization: ATMAN - ATM S.A.
Lines: 80
Message-ID: <opdf2s$6um$2@node1.news.atman.pl>
References: <opdeqk$mfi$1@node2.news.atman.pl>
NNTP-Posting-Host: 93.174.25.53
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1505378204 7126 93.174.25.53 (14 Sep 2017 08:36:44 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 14 Sep 2017 08:36:44 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
In-Reply-To: <opdeqk$mfi$1@node2.news.atman.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit