Newsgroup: it.comp.lang.visual-basic
Titolo: Connessione a file di testo

Rieccomi...
problemino diverso: devo accedere a un file di testo ed utilizzarlo come
database.
'esempio
'***connessione al flusso
mySql = "Select * from [Text;HDR=NO;DATABASE=C:\_test\].[mytest.txt]"
rsText.Open mySql, myDBConn, adOpenStatic, adLockOptimistic, adCmdText
rsText.AddNew
rsText(0).Value = "Uno"
rsText(1).Value = "dueeeeeeee"
rsText(2).Value = "tre!"
rsText(3).Value = 20051005
rsText.Update
rsText.Close
i campi sono a lunghezza fissa, specificata in un  apposito schema.ini:
[mytest.txt]
Format = FixedLength 
ColNameHeader = False 
CharacterSet = ANSI 
MaxScanRows=0 
Col1=GlobalINI Text Width 50
Col2=PrivateINI Text Width 50
Col3=FileName Text Width 50
Col4=TransferDataISO Long Width 8
Abbastanza semplice, se non fosse che non so come aprire la connessione.
Cioč, come aprire myDBConn?
se lo collego a un db access esistente (magari anche vuoto) funziona:
myDBConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data
Source=c:\_test\modello.mdb"
ebbene, data x scontata l'esistenza di tale mdb tutto funge a meraviglia.
Ma io non voglio utilizzare una connessione del genere...
scartabellando su ho provato (tra parentesi quadre l'errore):
myDBConn.Open  "Provider=Microsoft.Jet.OLEDB.4.0;Extended
Properties='text;HDR=NO;FMT=Delimited;'"
[Format of the initialization string does not conform to the OLE DB
specification.]
myDBConn.Open 
"Provider=Microsoft.Jet.OLEDB.4.0;DATABASE=C:\_test\].[mytest.txt]"
[Impossibile trovare ISAM installabile.]
myDBConn.Open  "Provider=Microsoft.Jet.OLEDB.4.0;Driver={Microsoft Text
Driver (*.txt; *.csv)};Dbq=C:\mytest.txt"
[Impossibile trovare ISAM installabile.]
Tutti esempi trovati su internet. Purtroppo la maggior parte delle
ricerche in tal senso mi hanno portato in siti dove ciň veniva utilizzato
da Access...
Eppure per applicazioni molto semplici questo sistema ha l'indubbio
vantaggio che puoi utilizzare un notepad per accedere e vedere i record, e
non devi per forza installarti Access o un tool che ti permette comunque
di accedere direttamente ai dati (client oracle, sql/server..)
nessuno si č mai imbattuto in un problema del genere?
Come cavolo posso aprire sta connessione senza per forza portarmi dietro
un mdb?
Andrea
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Rieccomi...





cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=" & SourceFilePath & ";" & _
                          "Extended
Properties=""TEXT;DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=15;"""
rs.Open "SELECT * FROM [" + FileName + "]", cn, adOpenStatic


 Properties=""TEXT;DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=15;"""
mi rende questo errore:
"C:\_test\mytest.txt" non č un percorso valido. Assicurarsi che il nome
del percorso sia corretto e di essere collegati al server in cui si trova
il file.
ovviamente il file c'č, non č protetto da scrittura e non č in stato di
lock, l'utente che esegue la connessione ha tutti diritti sia sul file che
sulla cartella..
Grazie comunque!


 sulla cartella..
Hai sbagliato a scrivere la path:
      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=" & SourceFilePath & ";" & _
                          "Extended
Properties=""TEXT;DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=15;"""
dove SourceFilePath per te dovrebbe essere c:\test\ (una path valida)
e il file 
 rs.Open "SELECT * FROM [" + FileName + "]", cn, adOpenStatic
dove filename = mytest.txt


 Hai sbagliato a scrivere la path:
Vero, pensavo ci volesse tutto il path completo del file di testo.
Grazie ancora, funziona egergiamente :-)
ps. ma le delete e update non si possono effettuare?  Insert sě, per gli
altri due mi risponde picche (non supportato dal driver ISAM).
Andrea


Alberto n ha scritto:
ovviamente sono sempre io... dal pc di un collega che aveva nei cookies il
suo nome e che mi son dimenticato di cambiare
