# Connessione a database Visual FoxPro Data-Coupler supporta i database **Visual FoxPro / dBase** come **sorgente dati** (sola lettura) tramite un lettore **completamente managed**: legge direttamente i file `.dbf` (tabelle), `.fpt` (campi memo) e `.dbc` (database container) **senza installare alcun provider OLE DB/ODBC** e funzionando a **64-bit**. > ℹ️ **Perché managed e non OLE DB?** Il provider `VFPOLEDB.1` di Microsoft è **solo a 32-bit**, > deprecato e va installato a parte. Il lettore managed non ha questi vincoli e funziona ovunque > giri l'applicazione (anche in container Linux/Windows a 64-bit). --- ## 1. Come connettersi (esempio) La "connessione" FoxPro è semplicemente un **percorso**. Non serve host, utente o password. ### Passo passo nell'interfaccia 1. Vai su **Credenziali** → **Aggiungi credenziale database**. 2. **Nome**: un nome a piacere (es. `Gestionale FoxPro`). 3. **Tipo Database**: seleziona **Visual FoxPro (.dbc / .dbf)**. 4. **Percorso Database FoxPro**: inserisci uno dei due: | Caso | Cosa inserire | Esempio | |---|---|---| | **Database container** | percorso completo al file `.dbc` | `C:\Users\aless\Desktop\data\Data.dbc` | | **Tabelle libere** (free tables) | percorso della **cartella** con i `.dbf` | `C:\Users\aless\Desktop\data` | 5. (Opzionale) **Code Page**: lascia `1252` per dati italiani/europei occidentali. 6. (Opzionale) **Record cancellati**: lascia deselezionato per escludere i record marcati come cancellati. 7. Premi **Test connessione**: deve mostrare il numero di tabelle rilevate. 8. **Salva**. A questo punto la credenziale è utilizzabile come **sorgente** nella pagina **Data Coupler**: selezionala, attendi la discovery delle tabelle, scegli la tabella e procedi con il mapping. --- ## 2. Formato della connection string Internamente la credenziale viene tradotta in una stringa interpretata dal lettore FoxPro. Sono accettate tutte queste forme (utile se incolli un percorso o una stringa esistente): ``` C:\Users\aless\Desktop\data\Data.dbc C:\Users\aless\Desktop\data Data Source=C:\Users\aless\Desktop\data\Data.dbc;CodePage=1252;IncludeDeleted=false Provider=vfpoledb;Data Source=C:\Users\aless\Desktop\data\Data.dbc;Collating Sequence=machine; ``` > Le stringhe stile **OLE DB** (`Provider=vfpoledb;Data Source=...`) sono accettate per comodità: > viene estratto automaticamente il valore di `Data Source`. `Provider` e `Collating Sequence` > vengono ignorati (il lettore è managed). Opzioni riconosciute: | Chiave | Significato | Default | |---|---|---| | `Data Source` | percorso al `.dbc` o alla cartella di `.dbf` | — (obbligatorio) | | `CodePage` / `Encoding` | code page per i campi carattere/memo | auto-rilevata dall'header, fallback **1252** | | `IncludeDeleted` | includere i record marcati come cancellati | `false` | --- ## 3. Tipi di dato supportati | Tipo VFP | Mappato come | |---|---| | Character (`C`) | testo | | Varchar (`V`) | testo | | Memo (`M`, file `.fpt`) | testo | | Numeric (`N`) | decimale | | Float (`F`) | decimale | | Double (`B`) | double | | Integer (`I`) | intero | | Currency (`Y`) | decimale | | Date (`D`) | data | | DateTime (`T`) | data/ora | | Logical (`L`) | booleano | I file memo (`.fpt`) e gli indici (`.cdx`) vengono individuati **automaticamente** accanto al `.dbf`. --- ## 4. Note e limitazioni - **Sola lettura**: FoxPro è utilizzabile solo come **sorgente**. La scrittura sui `.dbf` non è supportata (eviterebbe il rischio di corrompere indici `.cdx` e memo `.fpt` di gestionali legacy in uso). - **Elenco tabelle**: con un `.dbc` viene letto il catalogo del container (solo le tabelle effettivamente presenti come file `.dbf`); con una cartella vengono elencati tutti i `.dbf` presenti. - **Query**: la sorgente lavora in modalità "tabella" (estrazione completa della tabella selezionata). Le eventuali query custom supportano solo `SELECT [TOP n] * FROM ` (niente JOIN/WHERE evoluti). - **Performance**: la lettura è in **streaming**; anche tabelle da centinaia di MB vengono elaborate con un uso di memoria contenuto. --- ## 5. Risoluzione problemi | Sintomo | Causa probabile | Soluzione | |---|---|---| | "Cartella del database FoxPro non trovata" | percorso errato | verifica il percorso del `.dbc` o della cartella | | "nessuna tabella .dbf trovata" | cartella senza `.dbf` | indica la cartella giusta o il file `.dbc` | | Caratteri accentati errati | code page diversa | imposta la **Code Page** corretta (es. 1250, 65001) | | Una tabella non compare | `.dbf` referenziato nel `.dbc` ma file assente | ripristina il file `.dbf` mancante |