PDA

View Full Version : [VB6] Controllo ADODC e DB Access con Password


calabar
25-10-2006, 07:47
Ciao ragazzi.

Per la connessione ad un DB Access protetto da password, modifico la stringa di connessione dell'ado, e si connette senza problemi.

Ciò che volevo fare io era poter cambiare questa stringa "al volo".
Ho fatto alcune prove, ma senza successo.

L'idea era quella di modificare la stringa prima che i controlli Adodc cercassero di connettersi al database, ma questo pare non essere possibile (come se i controlli venissero attivati prima di qualsiasi altra attività programmata da me).

Qualcuno ha idea di come impostare la password di connessione "al volo", senza utilizzare la stringa di connessione memorizzata di base nel controllo?

Nightmare
25-10-2006, 10:06
non so cosa sia adodc..

in vb6 utilizzavo le librerie ADO con le ADODB
e per modificare la stringa, non vorrei dire castronerie, bastava chiudere la connessione e modificarla.. stando però attenti ai vari " (apici doppi) interni della stringa da rimpiazzare con i ""... e poi riaprire la connessione.

(ricordo tempo fa la necessita di cambiare la stringa di un data environment e e mi è venuto un flash in cui la modificavo nel form_initialize)

calabar
25-10-2006, 11:17
adodb può essere utilizzata con oggetti ADO (in forma più "manuale") o da controlli ADODC (ADO Data Control).
Usare ADODC è estremamente comodo, ma ora mi sto scontrando con il problema che ho specificato sopra.

L'adodc è quello che appare qui in figura (quello in basso a destra nella barra dei controlli, quello in basso con la scritta "adodc1" nel form)
http://www.101-idea.com/vb/chap112.gif


Ho provato un barbatrucco, stilisticamente pessimo, ma contavo potesse funzionare:
- all'apertura del programma i controlli adodc si connettono ad un DB identico ma vuoto e senza password
- chiudo la connessione
- modifico la stringa
- riapro la connessine col nuovo DB con pw
Al refresh del controllo (necessario per il refresh di visualizzazione dei controlli datagrid associati), mi da errore. Per cui neanche questo...

Nightmare
25-10-2006, 12:29
non so, non l'ho mai utilizzato quel controllo, anche se ora ricordo dell'esistenza e non so aiutarti purtroppo

calabar
25-10-2006, 16:34
Grazie comunque ;)

In ogni caso, il barbatrucco è riuscito, c'era un'errorino nella stringa di connessione che avevo copiaincollato dalla connessione con pw funzionante.

Rimane il fatto che è una schifezza...
l'ideale sarebbe settare la pw prima che l'adodc tenti di connettersi...

disumano
27-10-2006, 18:54
devi semplicemente lasciare vuoto il controllo adodc senza cioé inserire né stringa di connessione né recordsource.
non devi neanche avere nessun controllo collegato ad esso come datasource.
all'evento prestabilito l'utente darà la password e il programma assegnerà stringa di connessione e recordsource al controllo ado e datasource e datafield ai controlli ad esso collegati.
se hai dubbi chiedi pure...