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

    [DELPHI 2005] Database Access

    Mi potreste dire gentilmente TUTTE le operazioni che devo fare x connettermi/fare query su un database access? non ho idea di che componenti utilizzare e come operare... aiutatemi grazie

  2. #2
    up

  3. #3
    ..............

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Le procedure che puoi seguire per collegarti ad un database Microsoft Access dipendono dalla libreria/piattaforma che intendi utilizzare.

    Ad esempio, con dbGo for ADO, puoi utilizzare il componente ADOConnection e impostare la proprietà ConnectionString attraverso l'apposito editor.

    In seguito, utilizzando ADOCommand, ADOQuery e così via, puoi eseguire query di selezione o comando sul database stesso.

    In seguito, usi un TDataSource per poter collegare a questi DataSet un qualsiasi controllo visuale "data aware", quali TDBGrid, TDBEdit e così via.

    Mi riferisco ad un'applicazione di tipo VCL Application per Win32.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Grazie... si direbbe che ci sono riuscito... ma non riesco a capire come si fanno query con risultato. Nel senso che se devo fare INSERT INTO ci sono riuscito, ma per fare SELECT come devo fare? chi conterrà i risultati?
    (Ah poi mi puoi spiegare che è un dataset?)

    Ciao ciao e grazie

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da gygabyte017
    [...] per fare SELECT come devo fare? chi conterrà i risultati?
    Per eseguire una query, come in precedenza, dipende dalla libreria utilizzata.

    Hai fatto uso della libreria dbGo for ADO?

    In tal caso, il componente ADOQuery ad esempio ti consente di eseguire una qualsivoglia query, anche di selezione.

    I dati saranno "bufferizzati" dal componente, sebbene ne esistano alcuni (in altre librerie, oltreché in ADO, che supportino unicamente cursori unidirezionali).

    Originariamente inviato da gygabyte017
    Ah poi mi puoi spiegare che è un dataset?
    Tecnicamente, la libreria VCL definisce "dataset" qualsiasi componente discendente da TDataSet: questa classe fornisce metodi e proprietà che sono comuni a qualsiasi classe discendente, solitamente componenti come ADOTable, ADOQuery, IBTable, IBQuery, TTable, TQuery e così via, insomma tutti i componenti che contengono righe e colonne di una tabella ottenuta da una query o da un'altra sorgente dati (una tabella preselezionata dal DB) e che, generalmente, possono essere associati ad un componente TDataSource che provvede a fare da interprete tra il DataSet "di turno" e il controllo visuale data aware che è in grado di visualizzarne i dati.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Ecco quello che ho fatto: (si uso dbGo)
    Sul form ci sono:
    ----
    ADOConnection1 con la relativa ConnectionString corretta
    ADODataSet1 collegato con ADOCOnnection1
    DataSource1 collegato con ADODAtaset1
    ADOQuery1 collegato con ADOCOnnection1 e DataSource1
    DBGrid1 collegato con DataSource1
    ---
    Ora x eseguire query uso alla pressione di un tasto:
    codice:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text := 'INSERT INTO UserTable (aUsername,aPassword) VALUES (''CIAO'',''TESTR'')';
    try
    showmessage(inttostr(adoquery1.ExecSQL));
    except on E:Exception do
      begin
        showmessage('ERRORE: '+e.Message)
      end;
    end;
    end;
    e questo funziona. ora per ricevere valori con la SELECT faccio:
    codice:
    procedure TForm1.Button2Click(Sender: TObject);
    begin
          adoquery1.SQL.Clear;
    adoquery1.SQL.Text := 'SELECT * FROM UserTable WHERE (aUsername=''XXX'' and aPassword=''TEST'')';
    try
    showmessage(inttostr(adoquery1.ExecSQL));
    except on E:Exception do
      begin
        showmessage('ERRORE: '+e.Message)
      end;
    end;
    
    end;
    però nella DBGrid1 non vedo risultati... che sbaglio??

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da gygabyte017
    Ecco quello che ho fatto: (si uso dbGo) [...]
    però nella DBGrid1 non vedo risultati... che sbaglio??
    La DBGrid è associata al componente TDataSource che fa riferimento al componente ADODataSet il quale non viene mai utilizzato nel tuo codice.

    Il DataSource dovrebbe fare riferimento in questo caso al componente ADOQuery.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.