sql >> Databáze >  >> RDS >> Mysql

Máte problémy s používáním MS Access jako front-endu k back-endu databáze MySQL?

Měl jsem aplikaci, která fungovala podobně:frontend MS Access na backend MySQL. Byla to tak obrovská bolest, že jsem místo toho napsal Win32 frontend. Z hlavy jsem narazil na následující problémy:

  • Zdá se, že vývoj propojení ODBC již dávno skončil. Kolem se vznášejí různé verze --- velmi matoucí. Odkaz ODBC nepodporuje Unicode/UTF8 a vzpomínám si, že s ním byly i jiné problémy (ačkoli některé by bylo možné překonat pečlivou konfigurací).
  • Pravděpodobně budete chtít ručně upravit schéma databáze, aby bylo kompatibilní s MS Access. Vidím, že jste se již dozvěděli o potřebných náhradních klíčích (tj. primárních klíčích int) :-)
  • Měli byste mít na paměti, že možná budete muset použít průchozí dotazy k provádění sofistikovanějších SQL manipulací s databází MySQL.
  • Při používání velkého množství VBA buďte opatrní, protože to má tendenci poškodit váš frontendový soubor. Pravidelná komprimace databáze (pomocí hlavního menu, Nástroje | Databázové nástroje | Komprimovat a obnovovat, nebo něco takového --- používám holandskou verzi) a vytvářet spoustu zálohování je nezbytné.
  • Přístup obvykle způsobuje velké zatížení sítě. Jako, opravdu obrovské množství. Na to jsem nenašel řešení. Pokud to chcete mít pod dohledem, doporučujeme použít síťový monitor!
  • Access trvá na ukládání booleovských hodnot jako 0/-1. IMHO dává 0/+1 větší smysl a věřím, že je to výchozí způsob, jak dělat věci i v MySQL. Není to velký problém, ale pokud vaše zaškrtávací políčka nefungují, měli byste to určitě zkontrolovat.

Jednou z možných alternativ by bylo umístit backend (s daty) na sdílený disk. Pamatuji si, že je to dobře zdokumentováno, také v nápovědě. Možná se budete chtít podívat na některé obecné rady o rozdělení na frontend a backend a kód, který se při spuštění automaticky znovu připojí k backendu ; Mohu vám také poslat nějaký další ukázkový kód nebo jej zveřejnit zde.

V opačném případě můžete také zvážit MS SQL. Nemám s tím zkušenosti, ale předpokládám, že to spolu s MS Access funguje mnohem lépe!



  1. Verze php-mysql je v konfliktu se serverem Mysql

  2. MYSQL Parent Child Stejná tabulka; PHP hnízdí děti mezi rodiči jako multidimenzionální pole

  3. Dokončete kurz Laravel 8 Soft Delete &Restore Deleted Records

  4. Použití pg_dump k získání příkazů vložení pouze z jedné tabulky v databázi