Gestire connessione DB access a MSSQL per distribuzione

di il
6 risposte

Gestire connessione DB access a MSSQL per distribuzione

Ciao a Tutti,
sto collaborando con uno studio a cui ho realizzato un DB access che gestisce un DB MSSQL, ora sul mio portatile ho una VM con DB MSSQL ed ho realizzato il DB access che si collega con le "tabelle collegate" al server MSSQL ora che sono arrivato a una versione da poter testare e provare come faccio a gestire il cambio di connessione?
Ora in studio ho un server MSSQL differente al mio MSSQL di test quindi dovrei cambiare la connessione che nel mio DB access di sviluppo si basava su un file DSN, in più ho visto che per salvare la password di connessione (basata su utenti MSSQL) è necessario scollegare e ricollegare le tabelle con abilitata l'opzione salva password.
Quest'ultima operazione mi risulterebbe anche scomoda nel momento in cui devo aggiornare il file access in caso di modifiche o correzione DB, poiché ogni volta che copio in ufficio il mio nuovo DB access dovrei scollegare e ricollegare tutte le tabelle di connessione al mio DB MSSQL.
Come posso gestire questa problematica?
In più sempre per agevolare gli aggiornamenti del mio DB access se lo salvo in una cartella condivisa centralizzata e lo faccio aprire da tutti gli utenti dell'ufficio ci sono problemi?

Vi ringrazio per il tempo dedicato.
Ciao!

6 Risposte

  • Re: Gestire connessione DB access a MSSQL per distribuzione

    La cosa migliore è collegare le tabelle in modo programmatico, cioè modificando la connessione a run-time. Cerca su Google:


  • Re: Gestire connessione DB access a MSSQL per distribuzione

    Grazie mille! Ho trovato qualche articolo interessante con soluzioni utili una domanda in riferimento al punto di centralizzare il file access e farlo usare da più client è una soluzione applicabile e che non comporta problemi?

    Ciao e grazie!
  • Re: Gestire connessione DB access a MSSQL per distribuzione

    pizio ha scritto:


    Grazie mille!
    Prego

    pizio ha scritto:


    una domanda in riferimento al punto di centralizzare il file access e farlo usare da più client è una soluzione applicabile e che non comporta problemi?
    In ambiente multi-user lo sconsiglio.
    Guarda che te lo dice uno che ha sviluppato per anni applicazioni desktop (in rete LAN, multi-user, ecc.) su db Access (2002/2003) che ancora girano con l'accesso a 10-15 utenti anche simultanei.

    Non ti converrebbe usare solo SQL Server?
    Collegare tabelle di SQL Server in un db Access è l'ultima spiaggia, e dovrebbe essere solo in lettura.

    Infatti, sì, qualche problema io l'ho riscontrato.
    Ad esempio in un db access 2002/2003 se la tabella SQL Server contiene molti indici, non si riesce più a collegarla.

    SQL Server ha un linguaggio molto più avanzato (T-SQL), è un db più solido, dal SSMS gestisci il database come vuoi, pianifichi i backup (in access devi programmare da codice sia la compattazione giornaliera che i backup giornalieri), ecc.
    Con Access, al contrario, non puoi fare nulla se anche un solo utente è connesso al db!
    Questo è il vero problema! Pensa agli aggiornamenti, ad esempio, noi in azienda abbiamo utenti da tutto il modno, quindi nelle 24 ore abbiamo sempre utenti connessi; se devi fare una modifica, correggere un errore, fare il backup è impensabile comunicare con tutti per dirgli di chiudere l'applicazione.

    Un'altra rogna: i problemi sono sempre dietro l'angolo se l'utente usa una versione di Office diversa da quella usata per lo sviluppo. Ad ogni nuova versione i problemi (programmaticamente parlando) aumentano. Esempio, mi sono trovato che dopo Office 2007 alcune funzioni interne di Access non funzionavano più 'programmaticamente', come Round().

    Quindi, occhio!
  • Re: Gestire connessione DB access a MSSQL per distribuzione

    Gibra grazie mille per la pronta risposta ricapitolo un attimo per vedere se ho capito bene
    Ho pensato di avere la base dati su Microsoft SQL per non andare incontro ai limiti della quantità di dati gestibili da access, poi come DB di per se non è complesso ha poche tabelle ma alcune di loro potrebbero avere molti record, quindi ho pensato che con Microsoft SQL potevo appunto evitare di dover compattare il DB e in più avere un backup che gestisco con dei script di backup di MSSQL a caldo.
    Come interfaccia di "programmazione" ho scelto access per la velocità di realizzazione delle maschere di front-end visto che non doveva essere tanto complesso poi magari in futuro si valuta un interfaccia con GUI Windows o interfaccia web.
    Seguo il tuo suggerimento copiando su ogni client (circa il file access che si collega a MSSQL in più per la concorrenzialità su ogni maschera che lavora direttamente sulla tabella ho sulla proprietà "blocco record" ho selezionato "record modificati" non dovrei avere problemi dell'utilizzo del mio DB MSSQL da più client con access collegato alle tabelle di MSSQL, me lo confermi?
    Riguardo la problematica della versione di access se nel client installo il runtime i access allineato su tutte le postazioni risolvo il problema?
    Magari posso forzare l'utilizzo del runtime lanciando l'exe specifico e come parametro il path del mio file access.

    Grazie mille e fammi sapere se hai suggerimenti in merito.
    Ciao e Grazie!
  • Re: Gestire connessione DB access a MSSQL per distribuzione

    Ok, allora lo scenario è diverso da quello che si presumeva, tutte le tabelle sono IN SQL Server, usi MS Access solo come interfaccia.

    Personalmente non uso l'ambiente MS Access, uso solo il DB 'puro', per sviluppare applicazioni uso dei linguaggi di programmazione molto più avanzati, per non avere i limiti di MS Access.

    Ovvio che le mie sono solo indicazioni (e non possono essere altro di più) poi sei tu che vedrai come muoverti.
  • Re: Gestire connessione DB access a MSSQL per distribuzione

    Forse in prima battuta non mi sono spiegato bene, ora che ti è più chiaro mi sconsigli sempre di non centralizzare in una share il file di front-end in access?
    Per il futuro se la cosa va avanti sicuramente sarà meglio muoversi con un linguaggio differente.

    Ciao e grazie per le pronte risposte!
Devi accedere o registrarti per scrivere nel forum
6 risposte