martedì 3 gennaio 2012

[VB.NET] Usare DAO in VB.NET

Descrizione :
Un mio esempio pratico di utilizzo della Libreria DAO 3.6 in .NET.

+ Articolo :

Personalmente non ho mai avuto bisogno di usare DAO in .NET, ma in un paio di occasioni mi è capitato che mi venisse chiesto.
La mia prima reazione a questo tipo di domande è il classico "WTF ?!".
Ma forse proprio per l'originalità della cosa, ho deciso di inserire questo esempio nel Blog.

La Libreria DAO in .NET va anzitutto cercata nei Rif. COM :
Microsoft DAO 3.6 Object Library

L'operazione è la classica apertura e lettura di un Recordset da Tabella Access ( quello che normalmente in .NET si traduce in un DataReader, che oltre ad essere decisamente più corretto, è anche più veloce... ).

--> Codice Esempio :

        '...        

        Dim DBE As New DAO.DBEngine

        Dim DB As DAO.Database
        Dim RS As DAO.Recordset
        Dim strSQL As String = "SELECT * FROM Tabella"

        DB = DBE.OpenDatabase(percorso & nomeDB)
        RS = DB.OpenRecordset(strSQL, DAO.RecordsetTypeEnum.dbOpenSnapshot)

        RS.MoveFirst()
        While Not RS.EOF

            '...
            'Operazioni ...
            '...

            RS.MoveNext()

        End While

        RS.Close()
        DB.Close()

        '...

Come si può notare l'uso non è particolarmente intuituivo nè diretto, perciò il presente articolo
è semplice ma significativo.
Un classico sviluppatore VB6/VBA potrebbe avere non poche difficoltà nell'adattare il proprio
utilizzo di DAO all'ambiente .NET, principalmente per una questione di definizioni nello spazio dei nomi.
Ad esempio, vbOpenSnapshot è un membro Enum che non è definito in .NET, perciò bisogna cercarlo negli Enum del namespace DAO, dove tra l'altro ha cambiato nome, ed è : DAO.RecordsetTypeEnum.dbOpenSnapshot.
Questa ri-definizione dei nomi è abbastanza frequente quando si fa uso di librerie COM in .NET.

+ Fine Articolo. 

Un Click su "Mi Piace" è il modo migliore per ringraziare l'autore di questo articolo.



0 commenti:

Posta un commento

 
Design by Free WordPress Themes Modificato da MarcoGG