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.
-
Archivi
- Giugno 2023
- Settembre 2021
- Luglio 2021
- Gennaio 2021
- Giugno 2020
- Aprile 2020
- Gennaio 2019
- Aprile 2017
- Marzo 2017
- Novembre 2016
- Ottobre 2016
- Giugno 2016
- Maggio 2016
- Ottobre 2015
- Maggio 2015
- Febbraio 2015
- Gennaio 2015
- Novembre 2014
- Ottobre 2014
- Settembre 2014
- Agosto 2014
- Luglio 2014
- Giugno 2014
- Maggio 2014
- Aprile 2014
- Gennaio 2014
- Dicembre 2013
- Settembre 2013
- Agosto 2013
- Luglio 2013
- Giugno 2013
- Maggio 2013
- Aprile 2013
- Marzo 2013
- Febbraio 2013
- Gennaio 2013
- Dicembre 2012
- Novembre 2012
- Ottobre 2012
- Settembre 2012
- Agosto 2012
- Luglio 2012
- Giugno 2012
- Maggio 2012
- Aprile 2012
- Marzo 2012
- Gennaio 2012
- Dicembre 2011
- Novembre 2011
- Ottobre 2011
- Settembre 2011
- Agosto 2011
- Luglio 2011
- Giugno 2011
- Maggio 2011
- Aprile 2011
- Marzo 2011
- Febbraio 2011
- Gennaio 2011
- Dicembre 2010
- Novembre 2010
- Ottobre 2010
- Settembre 2010
- Agosto 2010
- Luglio 2010
- Giugno 2010
- Maggio 2010
- Aprile 2010
- Marzo 2010
- Febbraio 2010
- Gennaio 2010
- Dicembre 2009
- Novembre 2009
- Ottobre 2009
- Settembre 2009
- Agosto 2009
-
Meta