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]

Rispondere a