Scrivere un OleDB Provider per MySQL con ATL

Qualche articolo fa avevamo parlato di come creare un OleDB Consumer attraverso l’uso di ATL, avevamo visto l’uso degli attributi che consentivano velocemente ed in maniera più ordinata l’accesso ai dati. In questa serie di articoli vedremo come creare l’altra faccia della medaglia, ossia un OleDB Provider, un componente che quindi consenta di accedere ad una base dati ed inviare questi ad un consumer. Prendo come occasione quella di dover creare un OleDB Provider per i miei programmi gestionali per consentirne la connessione anche verso server MySQL ed ho deciso, quindi, di pubblicare il mio lavoro di questi giorni. Il tutto si svolgerà su alcuni articoli, vista la complessità dell’argomento.
Ma perché creare la possibilità a dei programmi per Windows di lavorare collegandosi a dati su di un server MySQL che nonostante lavori bene anche su server Windows, ha come suo ambiente più naturale un server Linux? Semplicemente per il fatto che i software gestionali del futuro a mio avviso debbano lavorare su vari tipi di base dati ed è normale poter inserire tra le fonti anche un motore tanto utilizzato, aspetto non meno interessante che un server Linux si può teoricamente tirarlo su con il solo costo dell’hardware, mentre per Windows server le cose sono differenti. Alcuni di voi allora si chiederanno perché creare un componente così complicato se ce ne sono di gratuiti e comunque anche commerciali in giro per la rete? A questo devo rispondere dicendo che ne ho provati molti e la maggior parte di loro utilizzano una vecchia connessione ODBC che non è contemplata nel mio spirito di evoluzione del software, altri non si sono rivelati buoni per i nostri dati ed inoltre non voglio far pesare sul costo dei miei programmi anche quello dei componenti esterni e delle loro licenze, molto meglio crearmi un mio componente che poi andremo a distribuire, almeno nella versione compilata, gratuitamente a chi ne abbia bisogno, per altri che vorrebbero i sorgenti, occorre seguire queste lezioni, ma anche saper sviluppare autonomamente alcune parti visto che non esporrò tutto il sorgente, ma soltanto alcune parti di questo perché il blog rimane un luogo dove imparare a programmare e non prelevare gratuitamente del codice.
Iniziamo a sviluppare il nostro componente con Visual Studio inserendo un nuovo progetto ATL nella soluzione, personalmente l’ho voluto chiamare RGPMyData. Immesso il nome dichiariamo di creare una libreria a collegamento dinamico, con supporto MFC ( stringhe, date, currency sono molto più semplici da gestire a discapito di qualche KB in più di grandezza del componente ) e supporto per la registrazione del componente stesso. Una volta completata l’operazione, in visualizzazione classi, facciamo click con il tasto destro del mouse sul progetto ed aggiungiamo una nuova classe, selezioniamo Provider OLEDB ATL. Vi si presenterà una finestra nella quale inserire il nome della classe, io ho messo MySQLData, automaticamente si autocompleteranno i nomi per i vari files il cui significato lo vedremo nel prossimo articolo. Se provate a compilare il programma vedrete che Visual Studio cercherà di registrare il nostro componente, quindi occorre aprire l’ambiente di sviluppo con diritti amministrativi.

Lezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in VC/C++ e contrassegnata con . Contrassegna il permalink.