52 messaggi dal 16 dicembre 2004
è possibile che una windows application realizzata con VB.net possa connettersi con un database remoto (MS Access in questo caso particolare) situato su un'altra macchina raggiungibile tramite LAN o addirittura tramite web?
Ho fatto diverse ricerche e ho trovato metodi che consigliano SOAP,o RDS e RDO, ma sono tutti abbastanza datati, prima della piattaforma .NET
mi date qualche consiglio? grazie
501 messaggi dal 09 giugno 2006
Contributi
Per essere possibile è possibile, il problema è semmai legato alle prestazioni. I database di Microsoft Access (meglio dire il motore Jet Engine) sono basati sullo file sharing ossia sul condividere il file stesso tra tutte le applicazioni che lo utilizzano. Se tali applicazioni sono distribuite in una rete, la condivisione del database avviene condividendo una risorsa di rete visibile a tutti i computer (es. una directory di un computer/server all'interno della quale c'è il file .mdb).

Di norma poi si procede in questo modo: in ogni computer che utilizza il database si crea una configurazione ODBC di tipo Microsoft Access che punti al database in rete. In questo modo il tuo programma può accedere al database usando il nome della risorsa ODBC senza necessariamente sapere a priori dove si trova fisicamente il database.

In un ambiente di rete locale tutto ciò funziona discretamente bene potendo disporre di una banda notevole. Se di mezzo ci metti internet, invece, il sistema è praticamente inutilizzabile per diversi motivi: la banda comincia ad essere ridotta o insufficiente per gestire questo tipo di condivisioni (di norma basate su NetBIOS che di per sé è un protocollo "pesantino"); la possibilità che la connessione ad internet si interrompa implica una serie di problemi legati alla possibile corruzione del database Jet; l'accesso al file .mdb richiede una connessione permanente alla risorsa di rete.

Dietro questo argomento non c'è solo un problema di condivisione di file ma anche di metodo adottato dal motore Jet per accedere ai dati (es. paginazione dei dati, gestione dei lock e della concorrenza).

Per situazioni di accesso remoto una soluzione potrebbe consistere nello sviluppo di servizi web (o, volendo, servizi di Windows basati su .NET Remoting) che funzionino da ponte tra il server e la tua applicazione.

Un'altra strada può essere quella di utilizzare sempre un database Access locale che viene sincronizzato periodicamente con il server.

In genere, comunque, per uno scenario client/server robusto, dovresti pensare a SQL Server 2005 che ti ricordo esiste anche in edizione free (SQL Server 2005 Express Edition) nonché nella nuova versione SQL Server 2005 Compact Edition (già nota con il nome di SQL Everywhere) decisamente interessante anche per lo scenario da te ipotizzato (http://www.microsoft.com/sql/editions/compact/default.mspx).

Ciao.

.:. Marcello Rutter .:.
52 messaggi dal 16 dicembre 2004
ti ringrazio per il consiglio e la spiegazione veramente completa.
ma SQL Server 2005 Express Edition o magari la Compact Edition potrebbero funzionare anche su chiavetta USB?
con Access era facile effettuare una copia di recovery sulla chiavetta, bastava copiare solo un file, e questo era accessibile su qualsiasi pc con Office...
2.410 messaggi dal 13 febbraio 2003
Contributi
Barabas ha scritto:
ma SQL Server 2005 Express Edition o magari la Compact Edition potrebbero funzionare anche su chiavetta USB?


si e no, se usi SQL 2005 Express puoi mettere il file mdf sulla chiavetta e quindi accedervi tramite user instance

con Access era facile effettuare una copia di recovery sulla chiavetta, bastava copiare solo un file, e questo era accessibile su qualsiasi pc con Office...


Lo stesso in MS SQL ti basta copiare i file mdf e ldf

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.