Apportare modifiche database BE per aggiornamento tabelle/query/masche

di il
5 risposte

Apportare modifiche database BE per aggiornamento tabelle/query/masche

Salve, poichè sto ultimando il mio progetto del database che grazie anche hai Vs preziosi consigli ho risolto, vi chiedo un ulteriore parere/suggerimento:

il datatabase deve essere usato da piu utenti in simultanea, quindi ho pensato di allocarlo in un computer in rete che fungerà da server, separando le tabelle (BE) dalle maschere/query (FE).

Fin qui ho le idee chiare (quasi), mi sorge un dubbio: se dovessi apportare modifiche alle tabella, alle query e di conseguenza alle maschere, come faccio visto che sul server ho solo il file con le tabelle e sul pc locale ho solo le maschere? devo lavorare con entrambi i file aperti visto che dal solo FE non posso apportare modifiche alle tabelle del BE.

Pensavo (non so se è la soluzione giusta) di tenere sul server il fil completo di tabelle, maschere, query, ecc, e sui compuer locali una copia del file FE, in modo che se devo fare qualche modifica lavoro direttamente sul file del server, ovviamente rigenerando i file FE se vi sono state modifiche sostanziali.

correggetemi  se è la soluzione giusta, altrimenti, attendo Vostre.

Colgo l'occasione, altresì, di augurarVi buona fine, con l'auspicio di un Buon inizio positivo in tutti i sensi!!!

Cordialità

5 Risposte

  • Re: Apportare modifiche database BE per aggiornamento tabelle/query/masche

    Generalmente il BE deve contenere soltanto le tabelle e il FE, in locale, tutti gli oggetti necessari: maschere, query, ecc. Per il discorso della multiutenza ci sono delle criticità se il BE è un file access. Normalmente, in questo caso, scelgo di consentire l'accesso di un utente per volta. 

  • Re: Apportare modifiche database BE per aggiornamento tabelle/query/masche

    Non si capisce bene se quando parli di MODIFICHE alle tabelle intendi alla struttuta peranutenzione o ai dati… penso tu intenda la prima.

    Solitamente ogni modifica al BE richiede minimo il relink completo delle tabelle, ma spesso il Deployment del FE, quindi va redistribuito il FE.

    Io usavo una tabella specifica nel Be(usata per gli Upgrade e per la messa in manutenzione) nella quale scrivevo la versione del FE aggiornata.

    Quando apro il FE controllo che non sia in manutenzione e poi se la versione è quella aggiornata, se a posto apro, altrimenti scarico la nuova.

    Usavo innosetup per creare il pacchetto di installazione.

    Mentre fai l'aggiornamento del FE invece, se lo devi fare di giorno durante l'utilizzo anche qui io usavo una tabella nella quale scrivevo TRUE nel campo Manutenzione e nel FE uso una Form Hidden con gestione Timer ed ogni minuto vado a leggere il campo Manutenzione, se lo trovo a TRUE faccio il LOGOFF a tempo 1min dopo aver avvisato l'utente di salvare e chiudere.

    Chiaramente lato server so chi si connette e so quanti client devono sloggarsi…

    La cosa non è proprio così banale, non sia complicata, ma va ben pensata e resa strutturale per non fare dei francobolli di esigenze…

  • Re: Apportare modifiche database BE per aggiornamento tabelle/query/masche

    31/12/2023 - @Alex ha scritto:


    Non si capisce bene se quando parli di MODIFICHE alle tabelle intendi alla struttuta peranutenzione o ai dati… penso tu intenda la prima.

    Solitamente ogni modifica al BE richiede minimo il relink completo delle tabelle, ma spesso il Deployment del FE, quindi va redistribuito il FE.

    Io usavo una tabella specifica nel Be(usata per gli Upgrade e per la messa in manutenzione) nella quale scrivevo la versione del FE aggiornata.

    Quando apro il FE controllo che non sia in manutenzione e poi se la versione è quella aggiornata, se a posto apro, altrimenti scarico la nuova.

    Usavo innosetup per creare il pacchetto di installazione.

    Mentre fai l'aggiornamento del FE invece, se lo devi fare di giorno durante l'utilizzo anche qui io usavo una tabella nella quale scrivevo TRUE nel campo Manutenzione e nel FE uso una Form Hidden con gestione Timer ed ogni minuto vado a leggere il campo Manutenzione, se lo trovo a TRUE faccio il LOGOFF a tempo 1min dopo aver avvisato l'utente di salvare e chiudere.

    Chiaramente lato server so chi si connette e so quanti client devono sloggarsi…

    La cosa non è proprio così banale, non sia complicata, ma va ben pensata e resa strutturale per non fare dei francobolli di esigenze…

    Sei stato molto esaustivo e molto tecnico nel rappresentare l'eventuale soluzione, ma io nella mia basilare conoscenza dell'access, tenendo anche conto l'esiguo numero di utenti che accederanno al data base (meno di 10), pensavo una cosa piu semplice, come dicevo un BE e un FE in computer locali. Mi veniva il dubbio sulle modalità corrette per effettuare aggiornamenti (manutenzione), anche in previsione di ampliamento aggiungendo col tempo altre tabelle e / maschere, ecc.   mentre ora che ho il database unico aggiorno tutt'insieme perchè il file è unico, poi come farò visto che avro piu file?

    Vero, aggiorno il FE e poi distribuisco le copie , ma cmq dovrei aggiornare due file BE e FE. .. Scusate se sono banale nelle mie domande che per voi potrebbero risultare scontate , ma come detto da poco mi sto approcciando ad access. 

  • Re: Apportare modifiche database BE per aggiornamento tabelle/query/masche

    01/01/2024 - gigia2710 ha scritto:


    aggiorno il FE e poi distribuisco le copie , ma cmq dovrei aggiornare due file BE e FE. ..

    Il BE lo modifichi, in ogni caso, è questo che origina la necessità di metter mano anche al FE quindi sì, bisogna sempre agire su due file, è inevitabile. 

    La modifica del BE ovviamente non puoi eseguirla finché ci sono utenti collegati, quindi la devi fare su una copia / ambiente di sviluppo. Quando nessuno sta lavorando cambi il BE di produzione con quello modificato. Questo lo puoi fare se non ci sono utenti connessi 24 su 24, magari puoi programmare l'operazione di “cancella il vecchio BE e copia il nuovo” con lo schedulatore di Windows ad un orario “sicuro” se non puoi farlo a mano.

    Se non usi procedure automatizzate di distribuzione del FE altra strada non c'è se non quella di distribuirlo manualmente, Non sarebbe male prendere un pezzetto del suggerimento di @Alex, in cui hai una tabella nel BE dove è salvata la versione del FE. Ad ogni collegamento il FE interroga quella tabella e guarda se è allineato. Se non lo è una bella maschera aperta con acDialog che avvisa a chiare lettere di prelevare il nuovo FE da una risorsa di rete o di guardare la posta elettronica se lo hai allegato ad un messaggio, con chiusura forzata del FE fino a quando il numero della versione non è allineato.

    Ci sono anche prodotti che fanno questa operazione automaticamente ma non sono gratis.

  • Re: Apportare modifiche database BE per aggiornamento tabelle/query/masche

    01/01/2024 - gigia2710 ha scritto:

    Sei stato molto esaustivo e molto tecnico nel rappresentare l'eventuale soluzione, ma io nella mia basilare conoscenza dell'access, tenendo anche conto l'esiguo numero di utenti che accederanno al data base (meno di 10), pensavo una cosa piu semplice, come dicevo un BE e un FE in computer locali. Mi veniva il dubbio sulle modalità corrette per effettuare aggiornamenti (manutenzione), anche in previsione di ampliamento aggiungendo col tempo altre tabelle e / maschere, ecc.   mentre ora che ho il database unico aggiorno tutt'insieme perchè il file è unico, poi come farò visto che avro piu file?

    Vero, aggiorno il FE e poi distribuisco le copie , ma cmq dovrei aggiornare due file BE e FE. .. Scusate se sono banale nelle mie domande che per voi potrebbero risultare scontate , ma come detto da poco mi sto approcciando ad access. 

    10 Users per Access in rete direi che è qualcosa tipo roulette russa, non esiguo… JET non è adatto alla multiutenza in sicurezza, non consente una gestione transazionale sicura, sempre tu abbia gestito ed usato bene i metodi transazionali nativi.

    Suggerirei il blocco record, ma anche qui molte lacune di prodotto.

    In ogni caso non puoi far apre il FE o Client in Filesharing lo devi distribuire.

Devi accedere o registrarti per scrivere nel forum
5 risposte