Newsgroup: it.comp.appl.access
Titolo: Select diretta su dbf free table directory VisualFoxPro

Ciao con Ado mi collego a file dbf apro recordset ed eseguo select:
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Dim RS As ADODB.Recordset
Dim sDBCPath As String
cn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
         "SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;" & _
         "SourceDB=" & sDBCPath & ";" & _
         "Exclusive=No"
RS.Open "SELECT * FROM artico.dbf", cn, adOpenDynamic
o anche creare una query  su tabella collegata dbf che esegue un
select.
Ora volevo sapere se possibile in editor query fare una select diretta
su dbf, come per:
EXCEL
SELECT *
FROM  [Excel 8.0;Database=C:\Dati\Cartel1.xls;].[Foglio1$] AS Clienti
SQL
SELECT *
FROM [ODBC;DRIVER=Sql
Server;Server=(local);DATABASE=TuoDb;Trusted_Connection=yes;].
[dbo.Clienti]
AS Clienti


Hai provato a farla?
- Sì: cosa è successo?
- No: perché non provi prima di chiedere? ;)
Popi


Ciao ho provato con questo nell'editor query di access, ma mi
resituisce errore di sintassi nell'operazione join:
SELECT *
FROM (ODBC;DRIVER=Microsoft Visual FoxPro
Driver;SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;SourceDB=I:
\INF\Informa\VDN;Exclusive=No).[artico] as prodotti;
La tabella (file .dbf) si chiama artico.

 La tabella (file .dbf) si chiama artico.
Io, fra le altre, in una SELECT uso questa qua sotto.
FROM [Excel 8.0;HDR=YES;IMEX=1;DATABASE=" & Me.NomeFileXlsDaCaricare &
"].[" & Me.ScegliFoglioXls & "$];") ' WHERE (NumeroOrdine<>'a');"
Non conoscendo i parametri di ODBC né di VFP direi di provare
innanzitutto a sostituire le "()" che racchiudono il nome del db con
"[]".
HTH
Popi


Purtroppo è uguale, non funziona


Forse dovremmo chiedere al GCN di ribattezzare il ng
it.comp.appl.access.SPIEGALERRORE.NONDIRECHE.NONFUNZIONA :)
Creati una tabella locale e chiamala "artico".
Poi crea una nuova query in cui metterai solo la tabella artico e
aggiungi tutte le colonne.
Nelle proprietà della tabella (all'interno della query) imposta
l'origine a [ODBC;DRIVER=Microsoft Visual
FoxPro;Driver;SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;SourceDB=I:
\INF\Informa\VDN;Exclusive=No]
Se fai visualizzare il foglio dati della query così creata ... che
succede?
Popi


Ciao avevo già provato questa cosa, SELECT artico.* FROM artico, e poi
entrando nelle proprietà della query in Stringa conness. origine ho
messo:
ODBC;DRIVER=Microsoft Visual FoxPro
Driver;SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;SourceDB=I:
\INF\Informa\VDN;Exclusive=No
poi ho provato a mettere la stessa stringa in Database origine.
in entrambi i casi l'sql diventa:
SELECT artico.*
FROM artico IN '' [ODBC;DRIVER=Microsoft Visual FoxPro
Driver;SourceType=DBF;BackgroundFetch=YES;Collate=MACHINE;SourceDB=\
\Spedizioni1\ESTERNO\cartella\Informa\VDN];
non funziona e non mi sembra corretto

 non funziona e non mi sembra corretto
Bigcef, te lo ridico e perdonami se stavolta uso un francesismo ma
"NONFUNZIONA" NON SIGNIFICA UNA BENEAMATA MAZZA!


Perdonami hai ragione.
ecco gli errori:
ODBC chiamata non riuscita
Nome origine dati non trovato e driver predefinito non specificato


Cercando "ODBC DSN less visual foxpro"  mi sono usciti un riferimento
a questo sito 
http://24.10.235.158/Extensions/Connections.htm
 e la
riga seguente, che ha qualche differenza con la tua ...
Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:
\somepath\dbname.dbc;Exclusive=No;
HTH
Popi

 Popi
Quanto hai segnalato va bene per tabelle VFP con estensione .dbc,
mentre come ho segnalato nel subject si parla di dbf free table
directory.
Significa che cambia il database type Visual Fox Pro Database=.dbc,
mentre free table directory=.dbc

 Popi
Quanto hai segnalato va bene per tabelle VFP con estensione .dbc,


 mentre free table directory=.dbc
Appunto ... non conoscendo VFP era il minimo che potesse succedere.
Quindi le uniche cose che ti rimangono da fare sono:
- spulciare le guide di VFP,
- cercare sui ng di VFP,
- sperare che qualche icaa-partecipante ferrato in materia ci metta
del suo.
Ciao
Popi


Grazie e scusami per averti fatto perdere tempo