Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Problemy z używaniem MS Access jako interfejsu do zaplecza bazy danych MySQL?

Miałem aplikację, która działała podobnie:frontend MS Access do backendu MySQL. To był tak ogromny ból, że zamiast tego napisałem frontend dla Win32. Z czubka głowy napotkałem następujące problemy:

  • Wydaje się, że rozwój łącza ODBC ustał dawno temu. Istnieje wiele różnych wersji, które krążą wokół --- bardzo zagmatwane. Łącze ODBC nie obsługuje Unicode/UTF8 i pamiętam, że były z nim również inne problemy (chociaż niektóre można rozwiązać przez staranną konfigurację).
  • Prawdopodobnie chcesz ręcznie dostosować schemat bazy danych, aby był kompatybilny z MS Access. Widzę, że już dowiedziałeś się o potrzebnych kluczach zastępczych (tj. kluczach podstawowych int) :-)
  • Powinieneś pamiętać, że może być konieczne użycie zapytań przekazujących, aby wykonać bardziej wyrafinowane manipulacje SQL w bazie danych MySQL.
  • Bądź ostrożny przy używaniu dużej ilości VBA, ponieważ może to spowodować uszkodzenie pliku frontendu. Regularne kompresowanie bazy danych (za pomocą menu głównego, Narzędzia | Narzędzia bazy danych | Kompresuj i przywracaj, lub coś w tym rodzaju --- używam wersji holenderskiej) i robienie dużych kopii zapasowych jest konieczne.
  • Dostęp ma tendencję do powodowania dużego ruchu w sieci. Naprawdę ogromne partie. Nie udało mi się znaleźć na to rozwiązania. Korzystanie z monitora sieciowego jest zalecane, jeśli chcesz mieć na to oko!
  • Access nalega na przechowywanie wartości logicznych jako 0/-1. IMHO, 0/+1 ma więcej sensu i wierzę, że jest to domyślny sposób robienia rzeczy również w MySQL. Nie jest to duży problem, ale jeśli pola wyboru nie działają, zdecydowanie powinieneś to zaznaczyć.

Jedną z możliwych alternatyw byłoby umieszczenie backendu (z danymi) na dysku współdzielonym. Pamiętam, że jest to dobrze udokumentowane, także w pomocy. Możesz rzucić okiem na niektóre ogólne porady dotyczące podziału na frontend i backend i kod, który automatycznie łączy się ponownie z backendem podczas uruchamiania ; Mogę też wysłać więcej przykładowego kodu lub opublikować go tutaj.

W przeciwnym razie możesz również rozważyć MS SQL. Nie mam z tym doświadczenia, ale zakładam, że współpracuje z MS Access znacznie ładniej!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula UNIA MySQL

  2. Jak sprawdzić, czy zmienna ma wartość NULL, a następnie ustawić ją za pomocą procedury składowanej MySQL?

  3. Zwróć 0, jeśli pole jest puste w MySQL

  4. Czy istnieje sposób na „nasłuchiwanie” zdarzenia w bazie danych i aktualizowanie strony w czasie rzeczywistym?

  5. Błąd MySQL 1153 — Otrzymano pakiet większy niż „max_allowed_packet” bajtów