Newsgroup: it.comp.lang.visual-basic
Titolo: la ConnectionString si modifica dopo l'esecuzione di Open

Buongiorno a tutti,
sto importando i dati da un'applicazione FoxPro.
La stringa di connessione che ho utilizzato finora è
-------------------
Wts.ConnectionString = "Driver={Microsoft Visual FoxPro Driver};" & _
      "SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;" & _
      "Exclusive=NO;SourceDB=" & cCartella & "\STUDIO"
-------------------
e finora ha funzionato bene.
Il problema è che durante la connessione ad alcune tabelle (
p.es
.
FATTURE.DBF), dopo l'esecuzione del metodo Open, cioè
-------------------
   Wts.Open
-------------------
il valore della ConnectionString, verificato a run-time, cambia da
-------------------
 ?Wts.ConnectionString
Driver={Microsoft Visual FoxPro
Driver};SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;Exclusive=NO;SourceDB=C:ARCHIVI\STUDIO
-------------------
a
-------------------
 ?Wts.ConnectionString
 Provider=MSDASQL.1;Extended Properties="Driver={Microsoft Visual
FoxPro
Driver};UID=;PWD=;SourceDB=C:ARCHIVI\STUDIO;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=MACHINE;"
-------------------
provocando così l'errore '-
2147217887
 (80040e21)': Il driver ODBC non
supporta le proprietà richieste, nell'esecuzione dell'Open del
RecordSet
-------------------
   Cli.Open "Select * from FATTURE;", Wts, 1, 1, 1
-------------------
chi mi può aiutare?
grazie in anticipo.

 RecordSet
Nel caso specifico, mi sembra che la problematica sia di sicurezza.
Normalmente, questo problema si supera in due modi: reimpostando la 
connectionstring prima della riapertura della connessione (perchè 
evidentemente tu stai riaprendo implicitamente la connessione, forse la 
assegni al recordset senza il Set), oppure forzando la persistenza 
delle regole di sicurezza (il famoso PersistSecurityInfo=True). Ma 
quest'ultima caratteristica deve essere accettata dal provider, e 
sinceramente non ricordo come si comporti l'ODBC verso FoxPro.
Ciao
Alberto
-- 
Konrad Adenauer: All'intelligenza Dio ha posto limiti, alla stupidità 
no.

 assegni al recordset senza il Set), oppure forzando la persistenza
ma non vedo dove riapro implicitamente la connessione
---------------------------
   Wts.ConnectionString = "Driver={Microsoft Visual FoxPro Driver};" &
_
      "SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;" & _
      "Exclusive=NO;PersistSecurityInfo=True;SourceDB=" & cCartella &
"\STUDIO"
   Wts.Open
   Wts.Execute "SET NULL OFF"
   Set Cli = New ADODB.Recordset
   Cli.Open "Select * from FATTURE;", Wts, 1, 1, 1
---------------------------
sicuramente mi sto perdendo qualcosa: dove devo aggiungere il Set?

si>curamente mi sto perdendo qualcosa: dove devo aggiungere il Set?
prova cosě:
Wts.Open "Driver={Microsoft Visual FoxPro 
Driver};SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;" & _
                    "Exclusive=NO;PersistSecurityInfo=True;SourceDB=" & 
cCartella & "\STUDIO"
Dim Cli as ADODB.Recordset
set Cli = Wts.Execute("Select * from FATTURE") 

ok funziona, grazie a tutti
sempre a beneficio degli altri, il problema era dovuto al fatto che fra
i file di foxpro mancavano i .fpt che avevo cancellato, in quanto
riuscivo a importare sia in access che in excel direttamente i .dbf