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

    [DELPHI] Ottenere statement SQL delle operazioni su database con dbExpress

    Ciao a tutti, mi servirebbe sapere se e come sia possibile ricavare la corrispondente query sql di ogni operazione che viene compiuta (inserimento,modifica, cancellazione) su di un archivio da un gestionale.

    L'applicativo è sviluppato in Delphi, versione 2010, è collegato ad un database MySQL e sfrutta la tecnologia dbExpress con sequenza di connessione TSQLDataSet, TDataSetProvider, TClientDataSet.

    Grazie per la collaborazione,
    Maurizio

  2. #2
    ??? non ho capito, vorresti farlo lato db? cioè: un qualunque programma scritto in un linguaggio qualunque fa una qualunque operazione sul db, e tu vorresti che dal db venisse registrato (autonomamente) l'operazione appena eseguita?

  3. #3
    no no...intendo così: dal lato applicativo, quando viene eseguita un'operazione di inserimento, modifica o cancellazione di un record, se è disponibile un evento tra i componenti indicati (tipo l'OnGetData del TDataSetProvider) da cui ricavare la stringa SQL dell'operazione stessa.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Puoi utilizzare i cosiddetti Delegate Drivers della libreria dbExpress, in pratica creando una connessione al DB a cui si accede attraverso un'altra, utilizzata allo scopo di monitorizzare la prima.

    Maggiori dettagli li puoi trovare a partire da questa pagina (in particolare, vedi questo esempio pratico).

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

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

  5. #5
    Ciao alka, grazie per la risposta e le istruzioni

    Oltre questo metodo c'è invece possibilità, sfruttando uno degli eventi disponibili per i 3 componenti TSQLDataSet, TDataSetProvider, TClientDataSet, di ottenere il testo sql del comando inviato al database?

    Mi immagino che ad ogni operazione (INSERT, UPDATE, DELETE) i comandi recepiti dai componenti vengano convertiti in linguaggi sql per inviare le query al db: sapresti dirmi quale evento viene generato per questo passaggio?

    Grazie, ciao,
    Maurizio

  6. #6
    Credo di aver trovato quello che cercavo...anche se non capisco come poterne usufruire...

    Dunque documentandomi online sono arrivato a comprendere che ad ogni ApplyUpdates il TDataSetProvider genera il corrispondente codice SQL mediante un'istanza del TSQLResolver: ha qualcuno idea di come e sopratutto in quale evento si può ricavare questo SQL?

    Grazie, ciao ciao,
    Maurizio

  7. #7
    E' possibile intervenire nel sorgente di una unit "proprietaria", tipo la unit Provider?

    Ciao ciao,
    Maurizio

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.