Newsgroup: it.comp.appl.access
Titolo: Opinione sul back end - Front end in locale e non in rete

ciao a tutti.volevo sapere se per voi e' corretto fare un DB in BE FE
anche per se il DB non e' codiviso in rete e rimane esclusivamente
installato solo su Di un Pc.
Grazie
Dino


Ciao Dino.
Direi che è sempre corretto. Non fosse altro che ti consente di
modificare l'applicazione senza toccare i dati.
Ciao.
Alberto


Rende un DB particolarmente pesante anche meno lento???
Grazie
Dino

 wrote:

non solo è corretto, ma AUSPICABILE !!!
Altro vantaggio è che si "gonfia" molto di meno.


E quindi concludendo mi confermi anche e soprattutto per il discorso
rete (come sto' gia' facendo) lascio il BE sul server e copio FE nei
vari client.
Qualcuno mi aveva consigliato di lasciare anche FE sul server e di
fare i vari collegamenti.Tu cosa ne pensi???
Grazie Dino

 vari client.
Confermo


Grazie

 Altro vantaggio � che si "gonfia" molto di meno.
E quindi concludendo mi confermi anche e soprattutto per il discorso
rete (come sto' gia' facendo) lascio il BE sul server e copio FE nei
vari client.
Qualcuno mi aveva consigliato di lasciare anche FE sul server e di
fare i vari collegamenti.Tu cosa ne pensi???
Grazie Dino
-------  RISPOSTA  ----------
Io sono uno di quelli che preferiscono lasciare anche il FE sul server. So 
che gli altri del NewsGroup aborriscono questa tecnica, ma le spiegazioni 
che conducono all'altro metodo non mi hanno convinto pi� di tanto.
Mettiamo per esempio due pc, A e B, in rete. Quando il pc A carica 
l'applicazione, il FE viene portato nella memoria di A e questo � 
sicuramente un aspetto negativo del mio metodo. Durante il lavoro, invece, i 
due metodi non dovrebbero avere differenze, in quanto i dati richiesti 
viaggiano nella rete per passare dal server ad A che li elabora. Se B fa 
partire anche lui l'applicazione, il FE verr� copiato dal server nella 
memoria di B come era avvenuto per A.
Quindi col metodo di "tutto sul server" c'� un piccolo aggravio di lavoro al 
momento del caricamento dell'applicazione, ma poich� il FE di solito non � 
di grandi dimensioni questa cosa non � particolarmente pesante. Per contro, 
non ho mai il problema di dover controllare che la versione del FE sia 
l'ultima e di far fare l'installazione del nuovo FE ai vari clients in caso 
di aggiornamento.
Ciao
Antonio

 
hai valutato la fase lavoro in maniera un po' approssimativa.
il carico su server, non finisce quando hai caricato in memoria il fe sul 
client.
per tutto il tempo in cui il fe resta aperto, restano attive due 
connessioni read/write dal client al server: una per il mdb che contiene 
il fe e l'altra per il ldb relativo.
quindi oltre alle due connessioni (mdb & ldb) per il be, hai due 
connessioni in piu' per ogni client rispetto alla soluzione fe sul 
client.
questo significa anche che periodicamente client e server si scambiano 
informazioni sullo stato dei due files in piu'.
tradotto, significa che quando un nuovo client accede al fe, vengono 
create le due nuove connessioni e c'e' scambio di dati tra il server e 
tutti i client che hanno aperto il fe.
tutto questo comporta anche che se un client crasha, il blocco sui due 
files in questione potrebbe non essere rilasciato correttamente e ti 
ritroveersti con un fe inutilizzabile fino al riavvio del server (se non 
si e' corrotto, beninteso).
con il metodo 'tutto sul server', hai raddoppiato il carico su server 
(numero di connessioni attive) nella fase lavorativa, aggiunto un carico 
in piu' su tutta la rete alla connessione di ogni nuovo client e inserito 
un punto di rottura in piu', il tutto senza avere vantaggi evidenti.
tutto questo per non dover fare uno script di logon che in automagico 
aggiorna il fe sul client a ogni riavvio?
mah...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 Antonio
Quindi Antonio sposi l'idea di chi mi aveva consigliato di creare dei
link al FE per i vari client ma di lasciarlo sul server.
Facendo così pero' puo' succedere che se ad esempio il Pc A e il Pc B
aprono contemporaneamente l'applicazione e la Form "Form1" per
inserire supponiamo due ordini diversi il DB possa andare in crisi???
Con i singoli FE no lo Fa' e così
Grazie Dino

 Antonio
Quindi Antonio sposi l'idea di chi mi aveva consigliato di creare dei
link al FE per i vari client ma di lasciarlo sul server.
Facendo cos� pero' puo' succedere che se ad esempio il Pc A e il Pc B
aprono contemporaneamente l'applicazione e la Form "Form1" per
inserire supponiamo due ordini diversi il DB possa andare in crisi???
Con i singoli FE no lo Fa' e cos�
Grazie Dino
-------------  RISPOSTA  -------------
Ti consiglio di leggere la risposta di Paolo opg, molto dettagliata e 
precisa. Tante cose le ho apprese adesso, per esempio l'uso che fa Access 
dell' ldb. Diciamo che la mia tecnica � pi� semplice da realizzare e resta 
pi� che valida quando la rete � costituita da uno o due clients (nel mio 
piccolo ufficio ho proprio questa situazione). Col crescere della dimensione 
della rete forse vale la pena organizzare un metodo per l'aggiornamento del 
FE in automatico, come appunto ha spiegato Paolo che ringrazio. Non credo, 
comunque, che col metodo "tutto su server" si possa verificare il tipo di 
inconveniente che hai descritto tu.
Ciao
Antonio

 - Mostra testo citato -
grazie mille a tutti

 - Mostra testo citato -
Sono ancora io scusate.Ho gia' ringraziato tutti e lo confermo.Ho
letto pero' attentamente il messaggio di Paolo e quindi volevo un
attimo tirare le somme.
Quindi "tassativo" BE sul server (o Pc che funge da tale) mentre per
ogni client un FE.Il "problema " che ho io e' che quando effettuo una
modifica su di un FE ovviamente non si realizza negli altri FE. Paolo
diceva di creare un "uno script di logon che in automatico aggiorni al
riavvio".Ecco chiedo gentilmente a Paolo
se puo' farmi un esempio pratico.
Grazie ancora Dino
NB:se trovate questo post due volte non pensate che sia matto.Lo
inviato la prima volta ma "non si e' visto"

 
uno script di logon e' un batch (.cmd o .bat) in cui puoi ficcare le 
peggio cose.
la versione 'evoluta' (ma neanche tanto) del vecchio autoexec.bat.
per fare quello che ti serve:
copy \\nomeserver\directory\condivisa\fe.mdb c:\directory\locale\fe.mdb
la posizione in cui salvare lo script, dipende se hai un dominio o no.
eventualmente, se hai qualcuno che segue la rete, chiedi se c'e' gia' uno 
script di logon e come aggiungere la parte che serve a te.


 - Mostra testo citato -
Ok adesso e' molto chiaro e vai di Batch(sempre molto amati e
attuali).
Ovviamente questo discorso vale se tutti gli FE devono essere
uguali.Perche' se su alcuni FE ci sono delle inibizioni il discorso
cambia o per lomeno si complica.O no???
Grazie
Dino

 
...dipende...
cosa intendi per 'inibizioni'?


 wrote:

Semplicemente questo:Il sig Rossi PC1 ha un FE dove puo' solo caricare
l'anagrafica mentre se cerca di entrare nella fatturazione attraverso
un controllo non le viene permesso(pulsante disabilitato).
Mentre il sig Gialli Pc2 ha un FE dove puo' fare sia una che l'altra
cosa.
Se io a questo punto devo effettuare una modifica globale al FE posso
farla attraverso un Batch???
Grazie Dino

 
se il tuo fe 'capisce' chi sta usando il programma (hai una qualche 
gestione utenti, insomma) e si arrangia a 
disattivare/nascondere/disabilitare le divere funzioni in base all'utente, 
puoi aggiornare il fe su tutti i pc con il batch.
se pero' ognuno ha un fe personalizzato, con disattivata una virgola qua' e 
un puntino la', il batch non va piu' bene o va complicato per copiare un fe 
diverso a seconda dell'utente. ma imho, piuttosto che complicare il batch, 
conviene rivedere la logica dietro questa complicazione...


 wrote:

ok ricevuto
Dino

 wrote:
Mi intrometto per segnalare una soluzione che ho adottato, in merito
all'aggiornamento dei FE.
Premetto che tutti i miei BE si trovano in cartelle chiamate:
T:\<...cartelle di rete...>\<nomeAppl>
e che metto la copia aggiornata dei FE nelle corrispondenti cartelle,
nominandoli:
T:\<...cartelle di rete...>\<nomeAppl>\rete\<nomeAppl>.mdb
mentre ogni utente ha i FE nel suo pc, alle cartelle:
D:\sw\<nomeAppl>
Siccome siamo particolarmente blindati e non mi è possibile usare
l'utilità del sito Lebans (vedere i molti post sull'argomento), e per
non usare un .bat che mi copierebbe "sempre" l'ultima versione, ho
fatto un programmino con Access.
Questo contiene due tabelle collegate, "settings" e "settings1", la
prima collegata al FE in locale (D:\sw\<nomeAppl>
\<nomeAppl>.mdb<tabellasettings>), la seconda collegata al FE in rete
(T:\<...cartelle di rete...>\<nomeAppl>\rete
\<nomeAppl>.mdb<tabellasettings>).
In pratica confronta il campo 'giornoagg' delle due tabelle, e se le
date non coincidono copia il nuovo FE in rete sul FE in locale. In
ogni caso poi lo avvia.
Ecco il codice.
Function fAvvia()
On Error Resume Next
    Dim Quale as String
    Quale = "personale" ' questo è il nome dell'applicativo da
lanciare, così per adattarlo ad un altro devo solo cambiare questa
variabile
    Forms!mAvvio.TimerInterval = 0
    DataQui = DLookup("[setting]", "settings", "key='giornoagg'")
    DataLa = DLookup("[setting]", "settings1", "key='giornoagg'")
    If DataQui < DataLa Then
        FileCopy "t:\progetti\sw_bald\gestione\" & Quale & "\rete\" &
Quale & ".mdb", "d:\sw\" & Quale & "\" & Quale & ".mdb"
    End If
    Dim oWshShell As Object
    Set oWshShell = CreateObject("WScript.Shell")
    oWshShell.Run Chr$(34) & "d:\sw\" & Quale & "\" & Quale & ".mdb"
    DoEvents
    Set oWshShell = Nothing
    DoEvents
    Application.Quit
End Function
Funziona così. All'avvio si apre una maschera "mAvvio", con il valore
TimerInterval = 1, e l'evento SuTimer chiama la funzione fAvvia().
La funzione confronta i campi 'giornoagg' delle due tabelle collegate
e se necessario fa la copia.
Si avvia il FE in locale e si chiude l'applicazione di servizio.
Spero sia chiaro: se ci sono riuscito io... e lo devo ai molti aiuti
ricevuti in questo forum.
Buon lavoro.
Riccardo Baldinotti