Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Access - MySQL
Forum PHP.pl > Forum > Bazy danych > Access
sm76
Cześć : )
mam problem mianowicie połączyłem mysql z accesem i jak pobieram dane z tabel z mysql do accesa to polskie znaki szlak trafia
tak samo sie dzieje jak wprowadzam "śźć" do bazy przez accesa to potem w monitorze mysql są "?questionmark.gif"

1 co począć?
2 czy aby to problem z ODBC ?
3 jak ustawić kodowanie - "latin2" w accesie?
4. można stworzyć relacje na tabelach z Mysql (tabele zewnetrzne przez ODBC) tak aby wyświetliło sie 1 do wielu w accesie - normalnie (sam access) jest ok ale z tabelami zewnętrznymi (mysql) jest coś nietak ? czy też na powiązanych jest to niemożliwe - jak wtedy ustawić relacje?

5. istnieje ksiązka które podobne problemy wyjaśnia ? problemy powiązania Accesa z Mysql'em.
SongoQ
Wydaje mi sie ze powinienes konwertowac na kodowanie windows zamin zapiszesz do ACCESSA


Nie bardzo zrozumialem chesz zrobic relacje miedzy 2 innymi bazami danych?
sm76
mógłbyś powiedzieć coś wiecej na temat konwertowania na kodowanie windows?
dlaczego i jak to zrobić?

chciałbym ustawić relacje tak jak ustawia sie relacje na tabelach accessa, żeby niebyło problemów z np. stworzeniem formularza dla bazy
jestem na etapie relacji łączących poszczególne tabele a niepotrafie ustawić typów powiązań (w moim przypadku 1 do wielu) w przypadku samego accessa jest to banalne natomiast przy tabelach połączonych (tabele są na MySQL'u połączone przez ODBC) robi sie problem - jeżeli jest taka możliwość to jak ustawić typy powiązań na tabelach połączonych.

pozdrawiam,
SongoQ
Jesli chodzi o relacje w MySQLu to sie na podobnej zasadzie robi. Zakladasz index i typ tabeli jako INNODB. Potem w widoku relacji laczysz, czyli podajesz co jest kluczem obcym a co podstawowym. Jeslo chodzi o relacje miedzy 2 bazami danych to nie ma takiej mozliwosci. Musisz albo zrobic sobie zrzut sqla z accessa i potem odpalic na MySQLu lub jechac rekord po rekordzie, polecam to 1 opcje.

Co do konwertowania to sa gotowe funkcje z windowsa na iso.

Pytanie czy te dane beda caly czas zrzucene? (replikowane) na bazach czy ma byc 1 rozowo?

Szybszy mechaniz jaki ja stosowalem bylo poprostu zrzucenie do pliku tekstowego zapisanych danych z accessa.
sm76
te dane bedą aktualizowane, i zrzucane (nie czesto ale bedą) nie jedno razowo

jeżeli bym stworzył relacje na MySQL'u i potem połączył sie z Accessem to relacje były by ustawione ? czy typy tych relacji też ? jest taka możliwość?
głównym problemem jest ustawienie typu relacji, bo samą relacje utworzyłem na accesie który działał na tabelach z Mysql'a.

niemoge wybrać opcji zrzucenia do mysqla bo "trzeba" zrobić interfejs w Accesie baza w mysql'u - dane pobierane z mysql przez php na strone www.
pewnie łatwiej by było zrobić inną droga nie taką zakręconą (czyli naprzykład sam mysql, interfejs w php i wyrzycić na stronke dane ;albo w samym accesie i pobrać przez php na stronke)
troche droga przez "rospalone węgle" ale chciałbym sobie z tym poradzić.

mógłbyś powiedzieć coś wiecej o konwertowaniu blink.gif
SongoQ
Odnosnie relacji: Rejacje w MySQLu mozna zrobic dokladnie takie same jak w Accessie, gorzej jest z typami ale jak dobrze pokombunujesz to sie uda.

Jak czesto bedziesz dane zrzucal i czy to ma byc uatomatycznie, czy np odpalasz jakis sktypcic, czy jeszcze inaczej - wchodzisz do accessa i tam zrzucasz. Napisz dokladnie jak ma wygladac przebieg aktualizacji baz.

Jesli chodzi o accessa to robilem takie cos ze w accesie zrzucalem sobie bazke do pliku txt nastepnie na pliczek na serwer i tam odpalalem aplikacje ktoara mi aktualizowala dane. Mechanizm szybki do zaimpementowania i skuteczny.

W Twoim przypadku najlepiej by bylo jesli z aplikacji w php wysylasz plik accesa i wtedy sam php wyciaga sobie rekordy z accessa i aktualizuje mysqla.
sm76
Czesc
Napisałem zrzucał w sęsie automatycznym
Nic niebede zrzuciał wszystko bedzie sie odbywało automatycznie za pomocą php na stronke
dane bedą wprowadzane do bazy za pomocą php (prosty interfejs w php) globalnie natomiast lokalny dostęp bedzie z poziomu Ms Accessa
Wszystko bedzie (wszystkie dane) tylko w jednej bazie danych - MySQL i jedynie w niej (acces jako interfejs jedynie)

napisz mi cos wiecej o kodowaniu
co z tymi czcionkami dlaczego nie wyświetla access danych z mysql'a z polskimi znakami (mimo że jest w mysql'u wszystko wporządku - latin2 ustawione).
SongoQ
A dla kodowania Windows-1250 masz ok?
sm76
szczerze m?wiąc to niewiem co i jak
rozumiem, ?e masz na my?li Accessa blink.gif
jakby? m?g? to wyt?umacz jak dla s?abiej rozumiej?cego aarambo.gif
pozdrawiam,

---
żźćńąśłęó
SongoQ
W bazie Access masz ustawione windows, wiec jak checsz zapisywac do MySQLa to albo konwertuj albo zapisuj w takim kodowaniu.
sm76
no wporządku

tylko powiedz mi jak konwertować bo niemam pojęcia
sm76
aarambo.gif czesc ponownie

niesmiało chciałbym jeszcze pomeczyć temat accessa + odbc + mysql
bo mam problem w miejscu accesa
to wygląda tak:
dane w mysql'u są w latin2 z polskimi znakami i bezpośrednio jest wszystko wporządku natomiast jeśli te dane wyświetlam w accesie to dane są w miejscu znaków żźćśóęł questionmark.gifquestionmark.gifó?? i podobno jeśli jest ó poprawnie wyświetlane to znaczy, że jest coś z kodowaniem w accesie może z windows
niedokońca wiem jak działa odbc ale wydaje mi sie, że on nie wprowadza zamieszania
wiec access tylko co w nim ustawić przełączyć gdzie puknąć ?

dzieki serdeczne,
PiotrMalek
Ja używam kodowania utf8 (mysql) i w accesie nie mam problemów z wyświetlaniem

Jeżeli masz problemy z polskimi znakami to sprawdz jakie masz ustawienie w windowsie (opcje regionalne i językowe ) - jaki jezyk jest tam ustawiony np dla programów nie obsługujących UNICODE (a takim jest access żeby było śmieszniej)

Pozdrawiam
Fixer
Przecież wystarczy w ODBC w connectorze mysql na drugiej zakładce (zaraz za tą gdzie wpisujesz login, hasło i nazwę bazy) wybrać z listy rodzaj kodowania jakie masz w mysql ustawione, do wyboru masz utf8, lain2, windows 1250 i masę innych smile.gif

Jeśli nie masz tej zakładki zaakualizuj connectora mysql
Pilsener
Cytat(SongoQ @ 17.04.2005, 16:06:04 ) *
...wysylasz plik accesa i wtedy sam php wyciaga sobie rekordy z accessa i aktualizuje mysqla.
- da radę odczytywać jakoś pliki .mdb z tabelami access w php? Mam poważny problem - napisałem prosty skrypt aktualizujący pliki z danymi, ale dane dostaję w .mdb, a bazę mam w mysql - tabel jest wiele a dane przychodzą codziennie, więc odpadłoby mi dużo pracy.
SongoQ
Wykorzystaj np PDO przyklad dsn masz na http://pl2.php.net/manual/pl/ref.pdo-odbc.connection.php
Pilsener
Wielkie dzięki! Samemu bym tak szybko nie wpadł na PDO, powaliło mnie prostotą:
  1. <?php
  2. $dsn = "odbc:Driver={Driver do Microsoft Access (*.mdb)};Dbq=C:wyniki.mdb;Uid=Admin";
  3. $pdo = new PDO( $dsn );
  4. $sql = "select `id`,`nazwa` from `tabela`";
  5. foreach($pdo->query($sql) AS $row){
  6.   echo 'ID: '.$row['id'].' Nazwa: '.$row['nazwa'].'<br />';
  7. }
  8. ?>

Trzeba tylko pamiętać o php.ini:
Kod
extension=php_pdo.dll
extension=php_pdo_odbc.dll

Niby prosta rzecz a cieszy guitar.gif
SongoQ
Kwestia tylko wyszukania w manualu. Ciesze sie ze sie udalo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.