Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C++] Connettività ai database, Accesso ADO

    Allora conosco da poco il C++, stò per buttarmi anche sul Visual C++ per fare applicazioni che risultino anche più aggraziate, e ora vorrei trattare l'argomendo database.

    Facendo un giro ho notato che esistono vari modi per accedere al database, ed ho notato che ne esiste uno in particolare, chiamato ADO che si interfaccia al Visual abbastanza bene.

    Cosa sapete dirmi di questo modo di accedere al database?

    Conviene, non conviene, e troppo difficile, e semplice, e poco usato.. etc. etc.

    Attendo vostre notizie

  2. #2
    Ecco un esempio di come connettersi ad un DATABASE ACCESS
    con il C++ (utilizzando la tecnologia ADO della MICROSOFT)

    P.S. ADO --> Funziona solo con Windows!!!

    codice:
    Prima di utilizzare questo codice
    
    1) creati un database con ACCESS e chiamalo "database"
       creati una tabella e chiamala "tabella"
       inserisci nella tabella 3 campi di tipo testo
       e chiamali "nome", "cognome" e "telefono"
       ora inserisci nella tabella 2 o 3 record.
    
    2) la prima riga del codice "quella che importa la libreria
       msado15.dll è indispensabile per l'esecuzione
       di questo programma.
       Se durante la compilazione ti da ERRORE!!! voul dire
       che il PATH della libreria non è esatto (nel senso
       che sul tuo PC non la trova).
       basta allora ricercarla con la ricerca di windows,
       e modificare il path del codice.
    codice:
    #import "c:\Programmi\File comuni\SYSTEM\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    #include <iostream.h>
    void main(void){
    
    	CoInitialize(NULL);
        
    	try{
            // Dichiaro un puntatore al recordset (utilizzando la tecnologia ADO)
    		_RecordsetPtr pRst("ADODB.Recordset");
            // Connessione al database ACCESS
            _bstr_t strCnn("DRIVER={Microsoft Access Driver (*.mdb)};UID=;DBQ=database.mdb");
            // Query SQL (seleziono tutto il recordset)
            pRst->Open("SELECT * FROM tabella;", strCnn, adOpenStatic, adLockReadOnly, adCmdText);
            // Muovo il puntatore al recordset sul primo record	 
            pRst->MoveFirst();
            // Itero fino alla fine del recordset
            while (!pRst->EndOfFile) {
                // Visualizzo a video il campo NOME
    			cout<<(char*) ((_bstr_t) pRst->GetFields()->GetItem("nome")->GetValue())<<endl;
                // Visualizzo a video il campo COGNOME
    			cout<<(char*) ((_bstr_t) pRst->GetFields()->GetItem("cognome")->GetValue())<<endl;
                // Visualizzo a video il campo TELEFONO
    			cout<<(char*) ((_bstr_t) pRst->GetFields()->GetItem("telefono")->GetValue())<<endl<<endl;
                // Muovo il puntatore sul record successivo
    			pRst->MoveNext();
            }
            // Chiudo la connessione ADO
    		pRst->Close(); 
                	 
        }
        // Se si verifica un errore lo catturo
    	catch (_com_error &e){
            // ... E lo visualizzo a video (con tanto di descrizione)
    		cout<<(char*) e.Description();
        }
        
    	::CoUninitialize();
    }

  3. #3
    Sei un AMOREEEEEEEEEEEEEEE

    Ci provo subito.

  4. #4
    Mi da degli errori ci ho sbattuto un pò ma non ci arrivo...

    nella riga di
    #import.... mi da errore su "EndOfFile" dice errore lessico

    e poi mi da 3 errori che dipendono dice da una paretesi tonda mancante O_o

  5. #5
    Comunque può dipendere molto dal mio compilatore obsoleto

    Digital Mars Compiler Version 8.29n

    Attenderò di avere Visual

  6. #6
    codice:
    #import "c:\Programmi\File comuni\SYSTEM\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    Controlla BENE che il file si trovi all'indirizzo esatto

    Fai una ricerca da windows!!! START\CERCA\
    "TUTTI I FILE E LE CARTELLE"
    msado15.dll

    POI inserisci nella prima riga del codice (quella riportata sopra)
    l'indirizzo corretto del file.

    Per il resto il codice che ti ho postato è esatto.

  7. #7
    UE NON SONO BEOTA

    O capito ma non e quello, la libreria lo vista e si trova in quella directory, e poi mi da 4 errori non 1.

    :gren: Aspettero Visual, nel frattempo un compilatore decente che possa scaricare in 2 minuti?

  8. #8
    Esattamente l'errore che mi da dice

    "Lexical error: unrecognized preprocessing directive

    void * __CLIB memcpy(void *,const void *,size_t);

    Se non errro non riconosce il comando import.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.