10/10/07 14:14
The Lizard King
Raga, ho trovato un libro a casa dove c'è una guida (fatta con i piedi) che spiega come collegarsi ed interagire ad un database con C++.
Prima cosa, ho creato il database andando su Pannello di controllo - Strumenti di amministrazione - Origine dati ODBC, e nella scheda DNS di sistema, clicco su Aggiungi e scelgo Driver to Microsoft Access (*.mdb). Il file del database lo chiamo mysql.mdb, il nome è Database e il nome accesso è root. Poi ho ricopiato un sorgente dal libro:
Ora, a parte il fatto che non ho capito la maggior parte delle istruzioni, non so cosa fa il simbolo "::" e "->", ho provato a compilarlo, ma mi da vari errori, il primo è: ::CoInitialize(NULL); , mi dice che non è dichiarato... poi alla parte SELECT * FROM ??? ho messo i punti interrogativi perchè io ancora devo creare una tabella e sul libro non c'è scritto, passa direttamente a questo codice... mi spiegate cos'è che non va??? E poi cosa fanno try e catch?? Sembra un altro linguaggio, che diamine
Prima cosa, ho creato il database andando su Pannello di controllo - Strumenti di amministrazione - Origine dati ODBC, e nella scheda DNS di sistema, clicco su Aggiungi e scelgo Driver to Microsoft Access (*.mdb). Il file del database lo chiamo mysql.mdb, il nome è Database e il nome accesso è root. Poi ho ricopiato un sorgente dal libro:
#include<iostream> #import "C:\Programmi\File% comuni\System\ado\msado.dll"\ no_namespace rename("EOF","EndOfFile") using namespace std; int main() { ::CoInitialize(NULL); _ConnectionPtr PuntConn; PuntConn.CreateInstance(__uuidof(Connection)); try { PuntConn->Open("Database","root","",NULL); } catch(c_com_error &e) { cout<<"connessione al database non avvenuta!"; return -1; } _CommandPtr PuntCmd; PuntCmd->ActiveConnection=PuntConn; PuntCmd->CommandText="SELECT * FROM ???"; _RecordsetPtr PuntRs; PuntRs.CreateInstance(__uuidof(Recordset)); PuntRs->PutRefSource(PuntCmd); _variant_t VNull; VNull.vt=VT_ERROR; VNull.scode=DISP_E_PARAMNOTFOUND; PuntRs->Open(VNull,VNull,adOpenDynamic,adLockOptimistic,adCmdUnknown); while (!PuntRs->EndOfFile) { cout<<(char*) _bstr_t(PuntRs->Fields->Getltem("CProd")->Value)<<","; cout<<(char*) _bstr_t(PuntRs->Fields->Getltem("CProd")->Value)<<","; PuntRs->MoveNext(); } PuntRs->Close(); PuntConn->Close(); CoUnintialize(); return 0; }
Ora, a parte il fatto che non ho capito la maggior parte delle istruzioni, non so cosa fa il simbolo "::" e "->", ho provato a compilarlo, ma mi da vari errori, il primo è: ::CoInitialize(NULL); , mi dice che non è dichiarato... poi alla parte SELECT * FROM ??? ho messo i punti interrogativi perchè io ancora devo creare una tabella e sul libro non c'è scritto, passa direttamente a questo codice... mi spiegate cos'è che non va??? E poi cosa fanno try e catch?? Sembra un altro linguaggio, che diamine
aaa