Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92

    Delphi - visualizzare i risultati di una query

    Salve!

    Sto sviluppando un applicativo con Delphi 7 e MySQL.
    Non sono una programmatrice espertissima...quindi vi sarei grata
    se poteste spiegarmi con la massima semplicità!
    Avrei bisogno di visualizzare i risultati delle query...
    importando i risultati della ricerca in delle Label
    (ed eventualmente in seguito in un file di testo).
    Su internet non sono riuscita a trovare nulla..forse
    non ho fatto le ricerche giuste..
    potreste aiutarmi?

    Grazie fin d'ora per qualunque aiuto potrete darmi!


    Kate71

  2. #2
    Non ho capito bene il tuo scopo, in ogni modo provo a darti qualche input:

    probabilmente quello che ti occorre non sono le label ma le DbText, che si collegano ad un DataSource e visualizzano il valore che assume il campo da te specificato solo per il record corrente.

    Se è questo quello che ti serve, allora inserisci un DataSource nella tua form (lo trovi nella paletta DataAccess) e imposta come DataSet la tua query.

    Inserisci un DbText e nella rporietà datasource inserisci il DataSet appena inserito e in DataField metti il campo da visualizzare.

    Quando esegui la query il DbText dovrebbe mostrarti qualcosa... se tutto ha funzionato.

    Eventualmente puoi provare anche così: fai doppio click sulla tua query, bottone destro nella finestra che ti appare e poi Add all field, trascina un campo qualsiasi sulla tua form e ti crea tutto in automatico.
    Se fai così è necessario che il testo della query (select .... sia già presente nella proprietà SQL della query stessa).

    Spero di esserti stato utile, se hai altre domande saremo felici di risponderti.

    Saluti

  3. #3
    in ogni modo
    Benvenuta nel FORUM.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    Grazie per aver risposto così celermente!
    Si, volevo visualizzare in dei campi testo i risultati della SELECT.

    Ho provato a fare quello che mi hai scritto...
    ho inserito un Datasource e una DBText.
    Sull'Object inspector ho impostato il DataSet del DataSource
    a dm.Query2 (perchè ho appoggiato query, tabelle e datasource su un datamodule).
    La DBText ha come dataset il DataSource1 ma quando provo
    ad impostare il DataField mi da errore :" Query2 : No SQL Statement available ".

    Neppure il trascinamento dei campi dal Field Editor della Query2 funziona..stesso errore:" Query2 : No SQL Statement available ".
    Forse per aggiungere i campi nella query2 con il doppio click sul componente il
    codice SQL dovrebbe essere scritto all'interno di Query2.SQL.(TString...) sull'Object Inspector?

    dove potrei aver sbagliato!???

    La select probabilmente potrebbe trovare più di un record
    corrispondente ai parametri di ricerca inseriti.
    Come posso muovermi tra quei record?
    Posso lasciare invariato il mio codice:

    procedure TfmModifica.SpeedButton1Click(Sender: TObject);
    begin
    dm.tabAppCli.First ;
    // next, Last e Previous per ogni istruzione c'è una procedura

    end;

    o devo modificarlo?

    Grazie !!!
    Kate71


    Nota: questa applicazione è nata con Delphi 5 e Paradox su Win98.
    Avevo dei pulsanti che mi facevano muovere tra i record ricercati
    e appositamente salvati sulla tabella di appoggio.
    C'erano si, dei problemi da riolvere ma..fondamentalmente il programma girava!
    Il mio Database si compone di 14 tabelle, 7 delle quali sono tabelle di appoggio,
    le altre 7 sono quelle definitive, dove si trovano tutti i dati.
    Queste tabelle sono collegate dal campo ID_Cli, comune a tutte le tabelle.
    Le ho messe in collegamento utilizzando MasterSource e MasterFields...eppure..
    solo 2 tabelle mostravano i record collegati quando mi muovevo tra i record le altre
    ...era come se non esistessero.
    2 settimane fa ho rivoluzionato il programma...
    variando il tipo di DB,le versione di Delphi e il sistema operativo (ora win2000)..
    è stato un suicidio!!! ma ormai è fatta!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    ..ahh.. Grazie per il Benvenuto!!!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da kate71
    ho inserito un Datasource e una DBText.
    Sull'Object inspector ho impostato il DataSet del DataSource
    a dm.Query2 (perchè ho appoggiato query, tabelle e datasource su un datamodule).
    Ottimo! L'uso di un DataModule è sempre una buona scelta per separare i componenti che lavorano sui dati dai controlli visuali veri e propri che invece risiedono nelle form.

    La DBText ha come dataset il DataSource1 ma quando provo
    ad impostare il DataField mi da errore :" Query2 : No SQL Statement available ".
    Devi inserire nella proprietà SQL del componente TQuery lo statement in linguaggio SQL della query che vuoi eseguire, ad esempio:
    codice:
    SELECT * FROM NomeTabella WHERE ID = Valore
    Delphi è in grado di "preparare" la query ottenendo i campi di cui è composta che potrai successivamente visualizzare all'interno di controlli visuali Data Control associati ai campi stessi.

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

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    Il mio problema è che all'interno dell'SQL sull'object Inspector
    non posso inserire una stringa di comando di questo tipo:
    dm.Query2.SQL.Add('INSERT INTO `appCliente` (`NOME`, `COG`) SELECT NOME , COG FROM `Cliente` WHERE COG=' + '''' + dm.tabCli.Fields[2].asString + '''' );

    Come posso fare?

    Grazie!!!
    Kate71

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Non puoi fare nulla.

    No, mi spiego meglio: se hai esigenza di impostare una query a runtime, inserisci nella proprietà SQL una "query compatibile", cioè uno statement SQL che restituisca gli stessi campi...poi ti basterà modificare, a runtime, la proprietà SQL come desideri, prima di aprirla tramite il metodo Open.

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

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    perdonami ma non è molto chiaro per me
    ...potresti darmi qualche chiarimento in più?
    cosa intendi dire con:
    <<...poi ti basterà modificare, a runtime, la proprietà SQL come desideri, prima di aprirla tramite il metodo Open. >>

    Kate71

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Se vuoi avere a designtime (quando progetti) dei campi su cui poter lavorare che saranno però disponibili solo a runtime (in esecuzione, tramite codice), puoi inserire in fase di progettazione una query nella proprietà SQL che restituisca campi identici a quelli che si vogliono ottenere durante la fase di esecuzione...in questo modo, puoi lavorare sui campi anche se la query vera e propria, parametrica, costruita tramite codice, verrà definita durante l'esecuzione del programma.

    Se definisci la query a runtime, durante l'esecuzione del programma, da qualche parte dovrai impostare lo statement SQL, in un modo simile a questo:
    codice:
    Query1.SQL.Text := 'SELECT * FROM...';
    Query1.Open;
    La nuova stringa SQL sostituirà quella usata in fase di progettazione per associare controlli visuali alla query.

    E' più chiaro?
    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.