Newsgroup: it.comp.lang.visual-basic
Titolo: Un consiglio su ADO & C....

Avendo poca pratica nell'uso di VB volevo chiedere al gruppo un
consiglio nell'uso di ADO, in quanto dalla documentazione e da altri
post precedenti ho ancora le idee molto confuse.
Ho bisogno di costruire un'applicazione client che vada ad
interfacciarsi da remoto (quindi all'interno di una LAN ma anche usando
Internet) ad un ServerNT sul quale gira un DB Access.
La mia domanda è: qual è la soluzione migliore da adottare? Mi sembra
di aver capito che ADO sia la migliore: mi confermate?
Se uso ADO, come faccio a specificare l'indirizzo IP del Server a cui
collegarsi (questo se sono in internet)? Mi sembra di aver capito che
lo devo fare specificandolo nella proprietà PROVIDER nel modo riportato
dalla guida:
"[Provider=MSDASQL;] DRIVER=driver; SERVER=server; DATABASE=database;
UID=utente; PWD=password"
Mi è possibile quindi inserire nel Server l'indirizzo IP? o è una
castronata???
Poi dovro' specificare come DRIVER "ODBC"...
Se potete illuminarmi mi farete un grosso favore.
Grazie anticipatamente.
Sent via Deja.com 
http://www.deja.com/
Before you buy.


Per quanto ne so, se il server e' raggiungibile  via internet (in pratica
con i protocolli http e/o ftp), per leggere un mdb occorre che sul server
web giri IIS innanzitutto, quindi occorrono delle pagine asp che elaborino
le richieste, si connettano al database e generino un output, solitamente in
formato html, ma credo sia possibile anche un output di diverso formato,
dipende dal client che le deve leggere. Sul server va pertanto configurata
la modalita' di accesso al database fatta dall' asp (via odbc oppure oledb).
Che il client si connetta direttamente con successo al database mi sembra
poco probabile. Forse facendosi un mazzo cosi' con le librerie winsock si
puo' provare a fare qualcosa, ma presagisco sangue e sventura.
Ciao
Aldo

 Aldo
Ok ti ringrazio. Ora almeno ho una certezza: che mi dovrò fare un bel
mazzo! Infatti supponevo di aver fantasticato troppo... ma è che
evidentemente mi sono lasciato trascinare dalle "Fantasmagoriche"
e "Incredibili" possibilità descritte nell'MSDN su ADO......
Ciao
Roberto


Ciao Roberto...
Io sono Diego ho appena letto la tua domanda e la risposta che ti ha dato
l'amico Aldo..vorrei tranquillizzarti dicendoti che le cose sono un pò più
sempliciotte ( sempre che ti piaccia non buttarti la zappa sui piedi)
Ti faccio una breve introduzione su ADO così magari puoi capire meglio di
che cosa si tratta
----1 parte-----
Connessione tramite ADO
Utilizzando ADO ti connetti ad un Data Base generico semplicemente
specificando l' OLE DB Provider ( alla voce provider) di quel data base.
sostanzialmente l' OLE DB Provider non è niente altro che il driver del Data
Base quindine consegue che ogni DBMS ne possiede uno ( SQL Server 7 avrà il
suo, Access il suo, Oracle il suo.....) ..è per questo motivo che si dice
che ADO rende il programma trasparente e indipndente di fronte al data base
utilizzato.
In prima analisi quindi devi specificare il provider Ole DB per il  data
base ( come quando installi una perferica nuova devi inserire anche il
driver)
ecco quindi la scritta: Provider=MSDASQL; ( attento che MSDAOSQL è specifico
per Access e potrebbe dare problemi con altri DBMS quindi non stupirti se
utilizzando l'oggetto  recordset di ADO alcuni metodi e propietà non
funzionano )....
.....pensandoci bene preferisco darti il mio recapito telefonico perchè il
discorso non è così breve  07024638228 dovrei rispondere io...

Sono d' accordo su tutto, tranne su un fatto. Nella richiesta iniziale era
scritto:
"usando Internet".
Ciao
Aldo

,

Ringrazio infinitamente anche te per avermi dato queste delucidazioni
che mi sono servite per avere ulteriori certezze sul funzionamento di
ADO.
Come ha detto Aldo però penso che le cose si complichino enormente se
però devo lavorare stando in Remoto collegato da Internet. In questo
caso specifico, il fatto di dover interrogare un DB dalla mia
applicazione client (che risiede magari a migliaia di km) dovrebbe
comportare per forza di cose il passaggio ad esempio, da una mia
applicazione server che risiede o sulla stessa macchina nella quale
gira anche il DB o su LAN. Oppure come ha detto Aldo creare una
applicazione che si interfacci su IIS con ASP ecc.... anche se questa è
una soluzione + macchinosa per quello che dovrei fare io.
Essendo non molto pratico di ADO e DB con VB correggetemi entrambi se
ho detto castronate....
Vi ringrazio ancora entrambi.
Ciao
Roberto.


 funzionano )....
Una cosa che credo occorra aggiungere è la possibilità di specificare
il "network provider". Ossia la tipologia di connessione di rete.
Una connection di questo tipo:
"Provider=MSDASQL.1;Persist Security Info=False;User ID=[ID]; _
Extended Properties="DSN=[DNSName];UID=[ID] _
;DATABASE=[Database];Network=dbmssocn";Initial Catalog=[Table]"
indica anche il tipo di network connection:
"Network=dbmssocn" --> Driver per TCP/IP
L'elenco dei driver è:
dbnmpntw - Win32 Named Pipes
dbmssocn - Win32 Winsock TCP/IP
dbmsspxn - Win32 SPX/IPX
dbmsvinn - Win32 Banyan Vines
dbmsrpcn - Win32 Multi-Protocol (Windows RPC)