Newsgroup: it.comp.lang.delphi
Titolo: Database MDB condiviso in rete

Ho un programma fatto con Delphi7
che usa ACCESS come database
(visto che ci sono poche tabelle
ed ognuna delle quale con poche migliaia
di records e pochi campi).
Mi interfaccio al file MDB tramite ADO e file UDL.
Tale prog viene utilizzato in rete da 3 computer
ma non contemporaneamente (il database MDB
è in una cartella condivisa che su ogni computer
è identificata come unità Z).
Che cosa devo fare per poter utilizzare tale programma
in rete contemporaneamente dai tre computer senza
incasinare il tutto?
Lo so che ACCESS non è il massimo per una cosa del genere
(o forse non si può proprio fare), ma al momento ho
pochissimo tempo per mettere mano a questo programma e
quindi vorrei una soluzione che mi eviti di cambiare
database con conseguente tempo necessario per impratichirmi
sulle nuove strutture.
;-)
PS:
scusate per la stupidità della domanda, ma per me non lo è! :-D 

 incasinare il tutto?
Mi sembra banale: imposti la connection string di ogni macchina perché
punti al percorso in cui è presente il file.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 incasinare il tutto?
Prova a realizzare un application server a cui connetterti
tramite TRDSConnection, dovrebbe funzionare.
Trovi un esempio nei demo di Delphi.
Andrea

 scusate per la stupiditą della domanda, ma per me non lo č! :-D
Metti il database in una cartella condivisa, e imposta la connessione di
tutti i client che vuoi su quel database. (che sarą visto come, ad esempio,
Z:\\mioprog\pippo.mdb)
Ciao
-- 
Morde

tramite TRDSConnection, dovrebbe funzionare.
????

 Z:\\mioprog\pippo.mdb) 

si l'ho fatto tramite UDL
ma non dovrei mettere anche altri controlli
per non far accavallare tutte le info?
Se due computer diversi accedono allo
stesso tempo alla stesso record succede
qualcosa?
"Andrea Laforgia" <x...@xx.xx> ha scritto:


 qualcosa?
Dipende che intendi con "qualcosa".
Sicuramente succede "qualcosa", bisogna capire se per te è un problema o
no.
Se intendi che due utenti tentano di modificare un record, bisogna vedere
come viene gestita la cosa lato applicativo.  Se usi una tecnologia come i
ClientDataSet e i DataSetProvider, ad esempio, il lock è sempre
ottimistico, quindi non succede nulla, fino a che non si vanno a
confermare le modifiche e, in dipendenza da come è impostato il
datasetprovider, ciò che può succedere varia.  Chiarisci prima le idee su
come vorresti che l'applicazione si comportasse.


Esempio:
dal mio computer arrivo fino al record n°22
dove c'è il campo "Nome" con valore "Andrea"
e cambio tale valoro in "Filippo"
nello stesso momento un'altra persona dall'altro
computer arriva fino al record n°22 ed al campo
"Nome" imposta il valore "Giovanni"
Che succede? 


wrote:

Ripeto: dipende da cosa tu vuoi che succeda. Non c'è un comportamento
di default, perché non c'è una tecnologia di default. Con i
DataSetProvider, ad esempio, è possibile impedire che un utente
modifichi i dati che un'altra persona ha modificato nel frattempo,
oppure consentire che le modifiche passino solo per i campi non
"accavallati" (per esempio: tu modifichi il nome e io modifico la data
di nascita, ma non entrambi il nome), oppure fregarsene completamente
e far sì che l'ultimo che arriva sovrascriva i dati degli altri.
Dipende tutto da ciò che vuoi fare.  La domanda è: tu come vorresti
che si comportasse l'applicazione?