puCK ha scritto:
Salve a tutti.
Ho l'esigenza di convertire un progetto in vb.net che prima usava
MSAccess per fargli usare il database di OO2.
Vorrei chiedere se potreste darmi qualche indicazione sull'esistenza
di drivers OLEDB per Base.
Grazie,
Carlo
Il Driver OleDb per Access è utilizzabile anche da OOo (ovviamente solo
su Windows). Se nella prima schermata di Base, alla voce "Collega ad un
database esistente" si sceglie ADO, è possibile selezionare nell'URL
della sorgente dati la voce "Microsoft Jet 4.0 OleDb Provider". Però non
tutto fila liscio. Ti riporto il paragrafo dedicato ad Access della mia
guida, non ancora pubblicato.
----
Microsoft Access (MDB)
Il formato .mdb è molto diffuso in ambiente Ms Windows ed è strettamente
correlato a Microsoft Access. Tanto per essere chiari, è possibile usare
database in formato .mdb esclusivamente con Windows. Infatti non esiste
un driver ODBC affidabile in Linux, ed anche il Progetto MdbTools non ha
ottenuto finora risultati apprezzabili (ritengo soprattutto perché non
esiste un reale interesse ad usare questo formato su piattaforme unix like).
Un file .mdb può contenere, oltre alle tabelle ed agli indici, anche
tutti gli altri elementi che compongono un Database Access: Query,
Maschere, Report, Macro e Moduli. Le versioni Windows di OOo prevedono
la gestione di Db .mdb con tre modalità di accesso: diretta, ODBC e ADO.
Nella modalità diretta è possibile scegliere dalla casella a discesa
“Collega ad un Database esistente” la voce “Microsoft Access” e quindi
specificare nella schermata successiva il percorso del file da aprire.
Se invece si opta per “ADO”, la procedura è un po' più complessa, perchè
si apre la finestra di selezione di connessione ADO da cui scegliere la
voce “Microsoft Jet 4.0 OleDb Provider”. Infine la modalità ODBC prevede
la creazione preventiva di una sorgente dati collegata al Driver
Microsoft Access, così come avviene, ad esempio, per MySql. Consiglio,
ovviamente, la modalità diretta che equivale comunque ad ADO (OleDb
provider).
Tabelle e Query
Una volta collegato il Database .mdb ad OOo, alla voce Tabelle compaiono
sia le Tabelle vere e proprie sia quelle che Access chiama Query. Anzi,
direttamente da OOo è possibile creare nuove Query di Access utilizzando
la voce “Crea Vista” dal Pannello Attività. Peccato però che una volta
create, le Viste non siano più modificabili...
Tra le Tabelle sono elencate anche quelle di sistema, che hanno il nome
che inizia con “Msys...”. Normalmente in Access questi elementi sono
nascosti, e credo sia inutile dire che non è una buona idea aprirli con OOo.
Tipo di Campo
La corrispondenza tra i Tipi di Campo è abbastanza rispettata. Tenete
però presente che:
* la creazione / modifica di Tabelle direttamente da OOo non è
perfetta e spesso il risultato è un criptico messaggio di errore
* non c'è verso di assegnare una dimensione ai campi di testo; la
scelta del tipo è obbligatoria in Varchar, e se anche impostato,
il valore della dimensione viene convertito da Access in 255
* in genere nessun problema per i campi Valuta, Logico, Intero,
Intero ad incremento automatico, Data ed Ora
* in Access non esiste un equivalente del Tipo Timestamp,
perfettamente inutile in questo contesto
* se si usa il Driver ODBC, la struttura delle Tabelle non può
essere modificata ed OOo non riconosce gli indici e la chiave
primaria; in compenso non vengono elencate le Tabelle MSys
In generale, quindi non è opportuno usare il Driver ODBC e neppure
modificare la struttura del Db direttamente da OOo.
La versione Release Candidate 3, utilizzata per il test, è affetta da un
bug (na credo però che non sia riconducibile ad OOo, piuttosto al non
rispetto dello standard da parte di Microsoft) : non è infatti possibile
immettere, in Tabelle Access, valori corretti in campi definiti come
“Decimale”; ogni tentativo di immissione di valori, ad esempio, come
12,44 porta all'archiviazione di 1244,00. Questo problema, però, non si
verifica se usiamo il Driver ODBC. Possiamo dire che in questa fase il
supporto a File di tipo .mdb è ancora immaturo, quindi inadatto ad
ambienti di produzione, a meno che non ci si limiti soltanto a leggere i
dati.
-------------
Ciao
--
Filippo Cerulo
blog : http://6of9.blogspot.com/
e-mail : [EMAIL PROTECTED]
web : www.softcombn.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]