Newsgroup: it.comp.lang.visual-basic
Titolo: C'è un'alternativa alla fonte ODBC?

Ciao a tutti,
per eseguire il mio programma, sto leggendo un manuale, ed ho notato che ci
sono diversi modi per utilizzare i database in VB: ADO DAO e altri... almeno
avessero usato delle sigle più distinguibili... sembra tutto uguale!
In particolare, nel mio programma vorrei inserire un tasto "Sfoglia..." dove
l'utente può di volta in volta scegliere quale file MDB utilizzare, il quale
potrebbe essere localizzato anche in un PC di rete...(Anzi probabilmente è
così in quanto il programma deve essere utilizzato su tutti i PC di una
rete, ma utilizzando un solo file MDB unico.
Cosa mi consigliate?
Leggendo il manuale ho utilizzato un Ado Data Control 6.0 del quale ho
configurato una fonte dati ODBC...questo sistema però mi pare che non
permetta una semplice impostazione del percorso del file MDB, ma una
configurazione della fonte ODBC da effettuare su tutte le macchine da parte
di un tecnico un po' più esperto di un normale utente, la quale tra l'altro
va rifatta ogni qualvolta si voglia cambiare il file MDB da utilizzare
(anche se si potrebbe utilizzare un FileCopy comunque è da impostare la
fonte ODBC).
C'è un'alternativa?
Ringrazio tutti in anticipo.
Ciao da Emiliano

 Ciao da Emiliano
ciao!
Marco

 98se in poi
Neanche su XP? :-))
Neanche per i database Access2000? :-))
Ciao
Alberto

 SO e basta
Sicuro?
Forse un colpettino con un MDAC  vecchio l'avevi dato...
Oppure usi Access97, e questo ti dà molte chance in più...
Alberto
-- 
"Tina, ta te tòta tinta un tac!"
"Te cat tac i tac, m'tac't un tac?"
"Me ca tac un tac a tè?
Tac'tel te l tò tac, tò!"

 mi son perso qualcosa?
cioč tu stai dicendo che un eseguibile che contiene riferimenti ad ADO e che
crea una connessione a un db, funge su una macchina pulita senza installare
MDAC?!?
Forse mi sono perso io qualcosa...
Mi pare che nella SP4 di WIn 2000 sia compreso JET40SP7, ma per il resto mi
sembra moooooolto strano ciň che sostieni...
ciaociao

 ciao!
ciaociao


E dove li trovo?
Ciao a tutti.
Emiliano

 Nel tuo progetto crei metti un riferimento a Microsoft ActiveX Data Object
Library
1. Sono andato nel comando Progetto-->Riferimenti-->Ho messo la spunta su
Microsoft ActiveX Data Object 2.6 Library
2. Sono andato in Progetto-->Componento-->Ho ahhiunto Microsoft ADO Data
Controlo 6.0 (SP4) (OLEDB)
3. Ho inserito nella form il componente ADODC1
3. In Form_Load ho inserito il seguente codice:
Private Sub Form_Load()
    Dim db As ADODB.Connection
    Set db = New ADODB.Connection
    db.CursorLocation = adUseClient
    pathdb = "c:\database.mdb"
    db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathdb + ";"
End Sub
4. Nella Form ho inserito un oggetto TEXT ho cambiato la sua proprietà
"DataSource" in "ADODC1"
5. Nell'elenco FIELD dell'oggetto TEXT la lista è vuota, ho quindi inserito
manualmente il nome del campo "RagioneSociale"
Pur non dando errori all'avvio il TEXT non visualizza nessun spazio. Come
devo fare?
Ti ringrazio in anticipo.
Emiliano

 Emiliano
ciaociao


Grazie mille.
Ciao da Emiliano

 Emiliano
ciao!
Marco

 Marco
Ciao Marco,
ti ringrazio metto subito in atto i tuoi consigli.
Ciao e grazie
Emiliano

Ciao GioX,
ti ringrazio per la tua disponibilità (spero di non approfittarne troppo),
ma continua a non funzionare pur sembrando tutto semplice.
Ti riporto l'unico codice che ho scritto dopo aver inserito nella form un
text1 + un ADODC.
Private Sub Form_Load()
    Dim db As ADODB.Connection
    Set db = New ADODB.Connection
    db.CursorLocation = adUseClient ' da controllare
    pathdb = "c:\database.mdb"
    db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathdb + ";"
    'Dichiaro un oggetto recorset
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    'apro il recorset passandogli una interrogazione sql:
    rs.Open "SELECT RagioneSociale FROM AnagraficaClienti;"
'ERRORE**************************
    If rs.RecordCount > 0 Then 'controllo che ci siano dei record
all'interno del Recordset
        Text1.Text = rs.Fields(1) 'inserisco il valore del campo 0 nel mio
recordset nella text1
    End If
    rs.Close   'chiudo recordset e database
    db.Close
    Set db = Nothing 'scarico l'oggetto
End Sub
Quando arriva su
rs.Open "SELECT NumCliente FROM AnagraficaClienti;"
mi dice: "Connessione chiusa e non valida in questo contesto. Impossibile
utilizzarla per eseguire l'operazione - Errore di run-time 3709"
non so più cosa fare, ti assicuro che il database si trova correttamente su
c:\database.mdb.
Mi è venuto un dubbio: cercando aiuto con goolgle ho notato che spesso
invece di Microsoft.Jet.OLEDB.4.0 c'è scritto Microsoft.Jet.OLEDB.3.51 può
essere che io abbia qualcosa di non aggiornato?
Ti sarei veramente grato (lo sono lo stesso...) se tu mi facessi spedire il
mio progetto VB nella tua e-mail per dargli un'occhiata.
Purtroppo dovrei consegnare un lavoro e sono fermo a questo problema da
giorni
Ti ringrazio in anticipo.
Ciao
Emiliano