Mysql
 sql >> Database >  >> RDS >> Mysql

Problemi con l'utilizzo di MS Access come front-end per un back-end di database MySQL?

Avevo un'applicazione che funzionava allo stesso modo:un frontend MS Access a un backend MySQL. È stato un dolore così grande che ho finito per scrivere invece un frontend Win32. Dall'alto della mia testa, ho riscontrato i seguenti problemi:

  • Lo sviluppo del collegamento ODBC sembra essere cessato molto tempo fa. Ci sono varie versioni in giro --- molto confuse. Il collegamento ODBC non supporta Unicode/UTF8 e ricordo che c'erano anche altri problemi (sebbene alcuni potessero essere superati con un'attenta configurazione).
  • Probabilmente vorrai modificare manualmente il tuo schema db per renderlo compatibile con MS Access. Vedo che hai già scoperto le chiavi surrogate necessarie (ad esempio, chiavi primarie int) :-)
  • Tieni presente che potrebbe essere necessario utilizzare query pass-through per eseguire manipolazioni SQL più sofisticate del database MySQL.
  • Fai attenzione con l'uso di molti VBA, poiché ciò tende a corrompere il tuo file frontend. Comprimere regolarmente il database (usando il menu principale, Strumenti | Utilità database | Comprimi e ripristina, o qualcosa del genere --- sto usando la versione olandese) e fare lotti di backup è necessario.
  • L'accesso tende a causare molto traffico di rete. Tipo, lotti davvero enormi. Non sono stato in grado di trovare una soluzione per questo. Si consiglia di utilizzare un monitor di rete se si desidera tenerlo d'occhio!
  • Access insiste sulla memorizzazione dei booleani come 0/-1. IMHO, 0/+1 ha più senso e credo che sia anche il modo predefinito di fare le cose in MySQL. Non è un grosso problema, ma se le tue caselle di controllo non funzionano, dovresti assolutamente selezionarlo.

Una possibile alternativa sarebbe quella di mettere il back-end (con i dati) su un'unità condivisa. Ricordo che questo è ben documentato, anche nell'help. Potresti dare un'occhiata ad alcuni consigli generali sulla suddivisione in frontend e backend e codice che si riconnette automaticamente al back-end all'avvio ; Posso anche inviarti un altro codice di esempio o pubblicarlo qui.

Altrimenti, potresti anche prendere in considerazione MS SQL. Non ho esperienza in merito, ma presumo che funzioni molto più bene insieme a MS Access!