|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
[C++] Interagire con Database MS Access da DevCpp
Salve a tutti!
Ho la necessità di dover prendere dei dati da un database realizzato in MS Access usando però C++. L'operazione è semplice, c'è una tabella con 2 campi e devo riordinarli e smistarli a seconda dei valori in tali campi. Il mio problema ora è riuscire ad ottenere però questi dati! Googlando in giro ho trovato varie guide che spiegano come farlo in Visual C++, che però io non posso usare. Dalla mia ho solo il DevCpp e molto tempo da perderci :P Nelle varie guide che ho trovato c'è una cosa che si ripete piuttosto spesso, ovvero l'import della libreria ADO in C++ tramite questa riga di codice: #import "C:\Program Files\Common Files\System\ADO\msado15.dll" \ no_namespace rename("EOF", "EndOfFile") Ho aggiustato il path, però (anche giustamente direi) il povero compilatore non sà come utilizzare una dll già bella compilata ed in fase di compilazione mi dà tonnellate di errori. Insomma.. vorrei sapere se ho modo di importare questa dll e se quella che stò percorrendo è la strada giusta per raggiungere il mio obiettivo :P Grazie in anticipo a tutti! Ciauz! |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
up
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Secondo me se vuoi usare ADO con Dev-C++ (più che altro per il compilatore MingW32) non riuscirai a fare niente. IMHO ti conviene usare il compilatore Intel. Per fare queste cose queste conviene installarti Visual C++ Express (gratuito) e scarichi il Win32 Platform SDK (gratuito anche questo).
In alternativa, con Dev-C++, puoi usare questa libreria: http://www.sqlapi.com/ Dopo basta accedere al database di Accesss tramite ODBC. |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
Grazie mille per la risposta!
purtroppo però non ho la possibilità di scaricare nulla di così grande ![]() Ora mi trovo a fare uno stage in una azienda e devo realizzare un programma in C++ che visualizza il risultato di 2 query da un database di access.. ho a mia disposizione solamente il Dev-Cpp e il pacchetto office.. ho già provato a procurarmi altri strumenti di realizzazione (all'inizio speravo di usare java, ma le aziende devono pagare la licenza per usarlo >__> ) con scarsi risultati ![]() Insomma, sono obbligato ad usare gli strumenti attuali. Cmq mi sono informato e sul DevCpp esiste una libreria chiamata libodbc32.a che dovrebbe fare al mio scopo ![]() Anche se non uso ADO non importa, io devo raggiungere un obiettivo e non importa come ![]() Il problema di libodbc32.a è che non trovo esempi o guide su come usarla, e l'unica che ho trovato non sembra aiutarmi molto ![]() Possibile che con il Dev non abbia modo di vedere 2 query di access? Grazie ancora! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come ti ho detto puoi usare SQLAPI++ oppure come hai detto te puoi usare ODBC direttamente: http://msdn2.microsoft.com/en-us/library/ms714562.aspx
Dagli update di Dev-C++ devi scaricare il Win32 SDK/API (mi sembra che si chiami così) e cercare se sono presenti i seguenti header: Odbcinst.h Sql.h Sqlext.h Sqltypes.h Sqlucode.h Msdasql.h Msdadc.h Le api odbc sono molto complesse e molto poco supportate in quanto risalgono davvero a tanto tempo fa. Qui trovi qualcosa: http://www.easysoft.com/developer/la..._tutorial.html Ma attenzione: This tutorial was designed on UNIX and we have assumed you are using UNIX too. However, all the C examples should work equally well on MS Windows and other operating systems with some minor alterations (e.g. including windows.h on MS Windows and making the appropriate compiler/linker changes). Credo tu debba linkare libodbc32.a al tuo progetto che probabilmente verrà scaricata insieme all'update di dev-c++. Devi usare anche una connection string appropriata: http://www.carlprothman.net/Default.aspx?tabid=90 |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
mhh la vedo grigia veramente
non posso usare SQLAPI++ perchè sono a pagamento, cmq grazie per la segnalazione ![]() Bhe mi hai dato tutto ciò che mi serve, spero di riuscirci! Grazie molte ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La versione trial di SQLAPI++ è comunque completa e senza scadenza. Credo che faccia vedere uno splash screen solo alla prima connessione. Se si tratta di un programma ad uso interno va più che bene.
|
![]() |
![]() |
![]() |
#8 | ||
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
Hola ancora
non ci riesco ;_; stò provando ad usare le SQLAPI++ e questo è il mio codice: Quote:
Quote:
Quale può essere il problema? Andava installato qualcosa prima di provare ad usare le api? in questo pc ho solo office, devcpp e le classiche cosette tipo paint, blocconote etc odbc và installato in qualche modo? Non sò + dove sbattere la testa :P nel caso poi sarebbe possibile importare le dll di ado? Da quanto ho capito è possibile farlo solo dal Visual C++ ma se potessi usare Ado da qui finirei tutto il progetto in un giorno al massimo! Grazie mille anche stavolta ^^' Ciauz! Ultima modifica di AlexanderPD : 24-08-2007 alle 15:03. |
||
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova ad includere windows.h
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
provato ad includere windows.h.. stessi identici errori
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Questi:
C:/Dev-Cpp/include/./odbc_win32/sqltypes.h:137: error: `HWND' does not name a type C:/Dev-Cpp/include/./odbc_win32/sqltypes.h:275: error: `DWORD' does not name a type C:/Dev-Cpp/include/./odbc_win32/sqltypes.h:276: error: `WORD' does not name a type C:/Dev-Cpp/include/./odbc_win32/sqltypes.h:277: error: `WORD' does not name a type C:/Dev-Cpp/include/./odbc_win32/sqltypes.h:278: error: `BYTE' does not name a type se includi windows.h non te li può aver dati. L'hai incluso come primo nella lista degli include ? |
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
bhe ho aggiunto #include <windows.h> in mezzo agli altri..
e gli errori sono gli stessi ![]() non avrei mai pensato di avere tanti problemi per fare una cosa simile >_> |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi metterlo come primo include. Hai scaricato il pacchetto di Dev-C++ per lavorare con le API di Windows ?
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
![]() |
![]() |
![]() |
#15 | ||
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
ammetto che ormai mi stò facendo una confusione incredibile in testa :P
dunque, mettere #include <windows.h> sulla prima stringa ha aiutato, la situazione si è mossa almeno ora ho questo log sugli errori: Quote:
riposto anche il mio sorgente giusto per togliere dubbi: Quote:
|
||
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Togli questa: #include <odbcAPI.h>
|
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
ancora errori..
Quote:
![]() |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Negli esempi sul sito non c'è incluso...
Sei a posto, ora devi solo linkare i .a della libreria di SQLAPI al tuo progetto. |
![]() |
![]() |
![]() |
#20 | |
Member
Iscritto dal: Jan 2006
Messaggi: 129
|
Grazie mille per la pazienza che avete dimostrato fin'ora!
![]() Forse alla fine riuscirò veramente a fare stà cosa ![]() cmq anche linkandole ho questi errori: Quote:
io le ho aggiunte tramite le opzioni del progetto, facendo così: ![]() Minchia quanta ignoranza mi muove :P Grazie ancora ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:46.