Discussion:
Eksport z MySQL do MS Access
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Sławek
2005-11-22 09:52:22 UTC
Permalink
Witam!

Mam taki problem.
Na pewnym serwerze komercyjnym ma powstać baza danych w MySQLu. Dane z
tej bazy mają być okresowo eksportowane do pliku *.mbd czyli pliku bazy
Accessa. Problem w tym, że nie da się tego zrobić importem z programu
typu DBManager czy MySQL-Front bo programy te nie mają dostępu do bazy
na tym serwerze (można się tam dostać tylko z poziomu phpMyAdmin).
Czy macie jakieś pomysły jak zrobić taki eksport? W dodatku tak aby
użytkownik dokonujący eksportu nie musiał wykonywać wielkich kombinacji,
przekształceń plików itp.

Pozdrawiam!
Sławek
Shalom
2005-11-23 10:22:49 UTC
Permalink
Post by Sławek
Witam!
Mam taki problem.
Na pewnym serwerze komercyjnym ma powstać baza danych w MySQLu. Dane z
tej bazy mają być okresowo eksportowane do pliku *.mbd czyli pliku bazy
Accessa. Problem w tym, że nie da się tego zrobić importem z programu
typu DBManager czy MySQL-Front bo programy te nie mają dostępu do bazy
na tym serwerze (można się tam dostać tylko z poziomu phpMyAdmin).
Czy macie jakieś pomysły jak zrobić taki eksport? W dodatku tak aby
użytkownik dokonujący eksportu nie musiał wykonywać wielkich kombinacji,
przekształceń plików itp.
Pozdrawiam!
Sławek
Jesli dobrze zrozumialem to dlaczego nie poprzez MyODBC?
Rafał Posmyk
2005-11-23 11:36:05 UTC
Permalink
Post by Shalom
... Problem w tym, że nie da się tego zrobić importem z programu
typu DBManager czy MySQL-Front bo programy te nie mają dostępu do bazy
na tym serwerze (można się tam dostać tylko z poziomu phpMyAdmin).
Jesli dobrze zrozumialem to dlaczego nie poprzez MyODBC?
On nie ma bezpośredniego dostępu do serwera (przez host:port).
Połączenia ODBC wymagają takiego dostępu.

Obejrzałem pobieżnie phpMyAdmin. Tamtejsza funkcja eksportu
pozwala na utworzenia pliku w konwencji CSV. To juz dużo.
Dane ze wszystkich tabel zapamiętywane są jednak w _jednym_
pliku - to wada, bo trudno takie cos maszynowo podzielić
(brak jakichkolwiek znaczników oddzielających tabele).
Napisałbym do twórców phpMyAdmin, żeby tworzyli plik pro tabele
i pakowali wszystko do jednego pliku. A tak pozostaje Ci robić
eksport każdej z tabeli osobna.

Nie testowałem eksportu do plików Excela. Może tam robią
dla każdej tabeli osobny worksheet ?

Jak juz będziesz miał pliki CSV/Excel lokalnie, to import
do pliku MDB (z pustymi tabelami) nie powinien być większym
problemem. Można wyklinać bądź od biedy oprogramować.

Ciao, Smyk
--
Fju fju - powiedział Ćwirek
Sławek
2005-11-24 07:28:17 UTC
Permalink
Witam!
Post by Rafał Posmyk
Post by Shalom
Jesli dobrze zrozumialem to dlaczego nie poprzez MyODBC?
On nie ma bezpośredniego dostępu do serwera (przez host:port).
Połączenia ODBC wymagają takiego dostępu.
Dokładnie, nie mam dostępu do serwera.
Post by Rafał Posmyk
Obejrzałem pobieżnie phpMyAdmin. Tamtejsza funkcja eksportu
pozwala na utworzenia pliku w konwencji CSV. To juz dużo.
...
No tak to już coś, problem jednak w tym, że będzie to obsługiwał
użytkownik - osoba "zielona" w tym temacie. Używanie phpMyAdmin dla tego
kogoś to czarna magia. Powinienem to zrobić tak, że ten człowiek będzie
sobie tylko klikał w jakiś przycisk na stronie www, ewentualnie
uruchamiał jakiś program, który automatycznie wygeneruje mu plik MDB.
Miałem więc nadzieję, że ktoś zna skrypt w PHP realizujący eksport do
Accessa :(


Pozdrawiam!
Sławek
Rafał Posmyk
2005-11-24 07:57:27 UTC
Permalink
Post by Sławek
Powinienem to zrobić tak, że ten człowiek będzie
sobie tylko klikał w jakiś przycisk na stronie www, ewentualnie
uruchamiał jakiś program, który automatycznie wygeneruje mu plik MDB.
Miałem więc nadzieję, że ktoś zna skrypt w PHP realizujący eksport do
Accessa :(
Jesli serwer hostujacy PHP nie chodzi pod windowsami to na nic Tobie
taki skrypt :-| Jesli zas chodzi pod windowsami, to dlaczego od razu
nie wychozystac Jeta jako silnik danych (IIRC, PHP "rozumie" Jeta) ?

Ciao, Smyk
--
Fju fju - powiedział Ćwirek
Sławek
2005-11-24 09:09:58 UTC
Permalink
Post by Rafał Posmyk
Jesli serwer hostujacy PHP nie chodzi pod windowsami to na nic Tobie
taki skrypt :-| Jesli zas chodzi pod windowsami, to dlaczego od razu
nie wychozystac Jeta jako silnik danych (IIRC, PHP "rozumie" Jeta) ?
Niestety serwer nie chodzi pod Windowsami, zresztą nawet jak by chodził
to nie miałbym wpływu na to co na nim jest zainstalowane bo należy do
zewnętrznej firmy :(

Pozdr.
Sławek
Rafał Posmyk
2005-11-24 09:58:28 UTC
Permalink
Post by Sławek
Niestety serwer nie chodzi pod Windowsami, zresztą nawet jak by chodził
to nie miałbym wpływu na to co na nim jest zainstalowane bo należy do
zewnętrznej firmy :(
No coz, to nie pozostaje Tobie nic innego jak uzywac exportu
z phpMyAdmin, albo zaimplementowac wlasny export (dla kazdej
tabeli osobny plik CSV, potem wszystko spakowac do jednego
pliku) oraz import do bazy access.

Jest jeszcze inna mozliwosc. Uzyc na serwerze SQLite jako
baze danych. SQLite trzyma wszystkie tabele/dane takze w jednym
pliku. W accessie mozesz z bazy/pliku SQLite podlinkowac tabele
i uzyskac dostep do danych. Czerpanie danych z serwera sprawadza
sie zatem do skopiowania pliku bazy SQLite z serwera do zdefiniowanego
lokalnego katalogu (skad access linkuje tabele).

Czy SQLite spelnia Twoje wymagania wydajnosciowe musilabyc sam sprawdzic.
Sterownik ODBC do SQLite istnieje. Nie jest to co prawda mistrzostwo
swiata, ale moze na Twoje potrzeby wystarczy - sprawdz.

Ciao, Smyk
--
Fju fju - powiedział Ćwirek
Rafał Posmyk
2005-11-24 10:17:44 UTC
Permalink
Post by Rafał Posmyk
Jest jeszcze inna mozliwosc.
Jeszcze cos mi wpadlo do glowy. Pogadaj z providerem/hosterem
czy nie moglby gdzies w htdocs albo powyzej zrobic (soft)linku
do katalogi w ktorym znajduja sie tabele/pliki Twojej bazy
MySql. Mialbys do nich dostep przez ftp i moglbyc ich uzyc
jako zrodla dla lokanego serwera MySql. A moze nawet phpMyAdmin
potrafi zrobic kopie danych, ktore mozesz wczytac do lokalnego
serwera MySQL. Nie wiem czy cos takiego da sie zautomytyzowac ?

Ciao, Smyk
--
Fju fju - powiedział Ćwirek
Sławek
2005-11-24 12:19:06 UTC
Permalink
Post by Rafał Posmyk
Jeszcze cos mi wpadlo do glowy. Pogadaj z providerem/hosterem
czy nie moglby gdzies w htdocs albo powyzej zrobic (soft)linku
do katalogi w ktorym znajduja sie tabele/pliki Twojej bazy
MySql. Mialbys do nich dostep przez ftp i moglbyc ich uzyc
jako zrodla dla lokanego serwera MySql.
O! to jest całkiem niezły pomysł. Dzięki!

Pozdrawiam!
Sławek
MiM
2005-11-24 09:58:55 UTC
Permalink
Post by Sławek
Witam!
Mam taki problem.
Na pewnym serwerze komercyjnym ma powstać baza danych w MySQLu. Dane z tej
bazy mają być okresowo eksportowane do pliku *.mbd czyli pliku bazy
Accessa. Problem w tym, że nie da się tego zrobić importem z programu typu
DBManager czy MySQL-Front bo programy te nie mają dostępu do bazy na tym
serwerze (można się tam dostać tylko z poziomu phpMyAdmin).
Czy macie jakieś pomysły jak zrobić taki eksport? W dodatku tak aby
użytkownik dokonujący eksportu nie musiał wykonywać wielkich kombinacji,
przekształceń plików itp.
Pozdrawiam!
Sławek
Witam
Nie jestem dogłębnym znawcą tematu ale myślę, że jeżeli masz dostęp przez
phpMyAdmina tzn. masz login i hasło do bazy oraz odpowiednie do niej prawa.
Jeśli masz to, a do tego możliwość umieszczenia na tym serwerze jakiegoś
skryptu php to dane wyciągniesz bez wielkich problemów. Jest do napisania
kilka linii kodu, ale to sie da przeżyć.
Powodzenia.
Michał
Sławek
2005-11-28 12:22:51 UTC
Permalink
Witam!
Post by MiM
Witam
Nie jestem dogłębnym znawcą tematu ale myślę, że jeżeli masz dostęp przez
phpMyAdmina tzn. masz login i hasło do bazy oraz odpowiednie do niej prawa.
Jeśli masz to, a do tego możliwość umieszczenia na tym serwerze jakiegoś
skryptu php to dane wyciągniesz bez wielkich problemów. Jest do napisania
kilka linii kodu, ale to sie da przeżyć.
Powodzenia.
Michał
Problemem nie jest wyciągnięcie danych tylko ich konwersja do Accessa i
to z poziomu skryptu PHP.

Teraz jednak chyba będę miał łatwiej bo okazuje się, że nie będę musiał
eksportować całej bazy tylko wpis z danego dnia. To już mogę spokojnie
oprogramować w PHP i utworzyć plik tekstowy z instrukcjami SQLa, który
łatwo będzie można wrzucić do Accessa uzupełniając tam bazę.

Sławek

Loading...