|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
[Visual C++] & Access
Ciao Ragazzi
sto provando a connettemi ad un database Access 2000 con Visual C++ 6.0, ma la connessione va bene mentre la creazione del recordset mi va in errore. mi sapete dire cosa sbagio : import "c:\\Program Files\\Common Files\\System\\ado\\msado15.dll" rename( "EOF", "IsEOF" ) #include <ole2.h> #include <string> #include <stdio.h> #include <conio.h> #include <adoint.h> #include "conn.h" //----------------------------------------------------------------------------- int connessione() { char ls_fields[100]; long ll_count; _bstr_t query; _bstr_t conn_stringa; ::CoInitialize(NULL); VARIANT vcOmitted = { VT_ERROR, 0, 0, 0, DISP_E_PARAMNOTFOUND }; ADODB::_ConnectionPtr conn = NULL; ADODB::_RecordsetPtr recs = NULL; //ADODB::_CommandPtr comm = NULL; HRESULT hr = conn.CreateInstance(__uuidof(ADODB::Connection)); HRESULT hrs = recs.CreateInstance(__uuidof(ADODB::Recordset)); //HRESULT hc = comm.CreateInstance(__uuidof(ADODB::Command)); conn->Mode = ADODB::adModeReadWrite; conn->CursorLocation = ADODB::CursorLocationEnum(adUseClient); //creo la stringa di connessione //conn_stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\\Lavoro\\VisualC++\\Prove\\Adry\\Northwind.mdb;Jet OLEDB ![]() conn_stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\\Lavoro\\VisualC++\\Prove\\Adry\\Northwind.mdb;User Id=Admin;Password=;Mode=Read|Write|ReadWrite"; //mi connetto al database hr = conn->Open(conn_stringa, "", "", -1); if (FAILED(hr)) return 1; //creo la query query = "select Customer from Orders"; //eseguo la query //QUI MI VA IN ERRORE hr = recs->Open(_variant_t(query),_variant_t(conn), ADODB::adOpenDynamic, ADODB::adLockOptimistic, ADODB::adCmdText); if (FAILED(hrs)) return 1; //se il recordset è vuoto esco if (recs == NULL) return 1; //altrimenti ciclo all'interno del recordset try { ll_count = 0; while (!recs->IsEOF){ sprintf(ls_fields,"%s", (LPCTSTR)(_bstr_t) recs->Fields->Item["Customer"]->Value); MessageBox(NULL,ls_fields,"Campo", MB_OK); recs->MoveNext(); ll_count++; } }catch(...) { conn->Close(); ::CoUninitialize(); return 1; } // chiudo connessione e recordset recs->Close(); conn->Close(); ::CoUninitialize(); return 0; } //----------------------------------------------------------------------------- Grazie
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ho provato con un database creato con access 97 e funziona.
Mi confermate che non è possibile connettersi ad Access 2000 con visual C++ utilizzando il metodo usato nel post precedente. ciao
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
Hai bisogno del driver Jet 4.0 anzichè del 3.51. Dovresti scaricarti L'ultimo Service Pack per VC6++.
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2003
Città: Angri - Milano
Messaggi: 358
|
ok grazie
sembra funzionare, anche se ho ancora un paio di problemini, mi da errore se nella query invece dell'asterisco metto il nome dei campi e un altro errore qui sprintf(ls_fields,"%s", (LPCTSTR)(_bstr_t) recs->Fields->Item["Customer"]->Value); ciao davide
__________________
Siamo eredi del nostro passato, il futuro è l'unica possibilità di rinascita. XBOXGamerTAG:nightwish78 Dell Studio XPS 16 (1645)-FullHD RGBLed-Intel Core i7 820QM-4GB DDR3-ATI HD 4670 1GB DDR3-HD 320GB 7200 rpm flickr |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:32.