Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [c++ Builder]

    Ciao a tutti, premetto che sono alle prime armi con il c++ builder e l'utilizzo dei database.

    Il mio problema è il seguente:

    Ho 2 tabelle, sulle quali dovrei fare una join, per fare questo ho utilizzato il query builder, il risultato è:

    SELECT Tabconteggi.Id, Tabconteggi.Id_Nome_Appartamento, Tabconteggi.Contfinale, Tabconteggi.Continiziale, Tabconteggi.Calorie_Consumate, Tabconteggi.Importo_Riscaldamento, Tabconteggi.Importo_Acqua, Tabconteggi.Importo_Rifiuti, Tabconteggi.Importo_Imp_registro, Tabconteggi.Importo_Affitto, Tabconteggi.Periodo_Dal, Tabconteggi.Periodo_Al, Tabconteggi.Rif_Fattura, Tabconteggi.Costo_Risc_minimo, Tabappartamenti.NomeAppartamento, Tabappartamenti.Millesimi_Risc
    FROM "tabconteggi.DB" Tabconteggi
    INNER JOIN "tabappartamenti.DB" Tabappartamenti
    ON (Tabconteggi.Id_Nome_Appartamento = Tabappartamenti.NomeAppartamento)
    WHERE Tabconteggi.Periodo_Dal = '01/01/2005'

    a questo punto il mio dataset si chiama: QueryConteggiPeriodo.

    Adesso ho creato un pulsante al quale ho assegnato un cliclo di for per scansionare i vari record della mia query e fare determinate operazioni:

    for (QueryConteggiPeriodo->First(); !QueryConteggiPeriodo->Eof; QueryConteggiPeriodo->Next()){

    Parziale = QueryConteggiPeriodoContfinale->AsInteger;
    TotaleContFinale = TotaleContFinale + Parziale; // Assegno il valore
    Parziale2 = QueryConteggiPeriodoContiniziale->AsInteger;
    TotaleContInziale = TotaleContInziale + Parziale2;
    QueryConteggiPeriodoCosto_Risc_minimo->Value = (QuotaComune * QueryConteggiPeriodoMillesimi_Risc->Value) /1000;
    QueryConteggiPeriodoCalorie_Consumate->Value = Parziale - Parziale2;
    }

    Il problema è che quando clicco sul pulsante, il programma mi risponde, dataset not in edit or insert mode, e quindi non riesco a scrivere nessun record.

    Sicuramente ho scritto delle castronerie, qualcuno potrebbe portarmi sulla strada giusta?
    Il mio obiettivo finale è scansionare i vari record, e per ogni record scrivere dei valori che vengono calcolati.
    Grazie mille

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ciao.
    Ti invito a leggere il regolamento in modo che i prossimi titoli siano conformi.
    Oltre al linguaggio, infatti, andrebbe descritto anche il problema.

    Per questa volta lo aggiorno io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3

    [c++ Builder] Dataset non modificabile

    Grazie

  4. #4
    quando apri il dataset sei in modalità browse e puoi leggerlo dall'inizio alla fine.
    Quello che tu cerchi di fare è anche modificarlo, operazione che fai quando scrivi
    Codice PHP:
     QueryConteggiPeriodoCosto_Risc_minimo->Value = (QuotaComune QueryConteggiPeriodoMillesimi_Risc->Value) /1000
    Questo non è possibile, occorre o impostare il dataset in modalità edit oppure scrivere una query opportuna che faccia l'azione che tu desideri.
    Leggiti la guida in linea per capire come funziona la modalità edit.
    Se hai ancora perplessità postale pure

    ciao
    sergio

  5. #5
    Ciao Sergio,
    innanzitutto grazie.

    Mi sono letto un pò del manuale, sospettavo fosse quello il problema, ho provato anche ad inserite il codice:

    QueryConteggiPeriodo->UpdateMode;
    ma non ho ancora rosolto, hai per caso idea di come si possa fare o che istruzione di debba dare?
    grazie mille

  6. #6
    purtroppo ho abbandonato il bde da lungo tempo.
    Tieni però conto che se sei con il tuo dataset in modalità browser non la puoi cambiare all'interno del loop, dovresti impostare un altro dataset. Ho paura però che debba essere un TTable.
    Se conosci un po' di sql puoi impostare tu la query desiderata ed eseguirla con ExecSql (se mi ricordo, oppure il metodo è ExecSql). Devi usare il componente TQuery e scrivere la query nella proprietà Sql utilizzando il methodo Add("..").
    ciao
    sergio

  7. #7
    Grazie Sergio, adesso ci provo .....

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da attiliobs
    Mi sono letto un pò del manuale, sospettavo fosse quello il problema, ho provato anche ad inserite il codice:
    QueryConteggiPeriodo->UpdateMode;
    ma non ho ancora rosolto, hai per caso idea di come si possa fare o che istruzione di debba dare?
    Il codice che hai scritto non produce alcun effetto: si tratta di una proprietà, a cui non hai attribuito alcun valore nell'istruzione che hai riportato.

    In breve, dai l'impressione che tu stia cercando di rimescolare a caso componenti, metodi e proprietà, sperando che prima o poi qualcosa esca fuori, per magia o per fortuna.

    Ciò che devi fare è documentarti sui componenti che appartengono alla libreria che stai utilizzando (che sembrerebbe essere il BDE), oltre al fatto che non sembrano esserci idee chiare sul luogo in cui dovresti scrivere i dati di cui hai parlato: perché altrimenti tenteresti di scrivere nella query che ti ha restituito i dati? dove dovrebbe salvare Delphi tali valori?

    Specifica esattamente ciò che vuoi fare nei termini del problema, ed eventualmente penseremo noi a suggerire una soluzione fattibile e i componenti da utilizzare, con la relativa configurazione, magari indicando anche il DB che utilizzi.

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

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

  9. #9
    Ciao alka e grazie per l'aiuto perchè mi sono perso..,
    innanzitutto utilizzo bde, il database è paradox, il linguaggio c++ della borland.

    Il mio obiettivo è prelevare i dati che mi servono dalle due tabelle, (a tal proposito avevo creato quella query), fare dei calcoli matematici sui dati che ho preso con la query, e scrivere i dati che risultano dalle operazioni matematiche e riscriverli nella tabella conteggi.

    Praticamente, tramite una pagina di inserimento (che funziona per adesso ), inserisco i valori, dopodiché (in un altra area) cliccando su un pulsante, dovrei recuperare i valori scritti in precedenza, calcolare e riscrivere i dati ricalcolati nella tabella conteggi.

    Grazie mille

  10. #10
    Ciao alka e grazie per l'aiuto perchè mi sono perso..,
    innanzitutto utilizzo bde, il database è paradox, il linguaggio c++ della borland.

    Il mio obiettivo è prelevare i dati che mi servono dalle due tabelle, (a tal proposito avevo creato quella query), fare dei calcoli matematici sui dati che ho preso con la query, e scrivere i dati che risultano dalle operazioni matematiche e riscriverli nella tabella conteggi.

    Praticamente, tramite una pagina di inserimento (che funziona per adesso ), inserisco i valori, dopodiché (in un altra area) cliccando su un pulsante, dovrei recuperare i valori scritti in precedenza, calcolare e riscrivere i dati ricalcolati nella tabella conteggi.

    Grazie mille

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.