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

    [Delphi] Impossibile convertire valore Null in String

    Ciao a tutti,
    utilizzo qs query (ovviamente opportunamente 'dinamica', ma qui per comodità la sistemo con dei valori fissi):

    codice:
    'SELECT SUM(cifra) AS somma FROM movimenti WHERE (sezione = 'Bar' AND data >=#01/01/2005# AND data <=#03/31/2005# AND cifra >= 0)'
    Poi ho una TADOQuery che si chiama Query e richiamo così il valore:

    codice:
     Variabile := Query.FieldValues['somma'];
    Il problema è che non riesco a gestire l'eccezione nel momento in cui non vi siano record da sommare (perché per i parametri impostati non esistono) e quindi mi restituisce l'errore "Impossibile convertire un valore Null in String" perché evidentemente nel campo SOMMA del database non è presente alcun valore.

    Come posso risolvere?

    Stefano

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Non utilizzare FieldValues, bensì ottieni un riferimento al campo del database usando la funzione FieldByName, a cui devi passare il nome del campo.

    Una volta ottenuto tale riferimento, puoi utilizzare la proprietà IsNull per verificare se il campo non è nullo; in caso negativo, puoi procedere all'estrazione del valore dal campo senza problemi.

    Tuttavia, mi pare strano che ti venga restituito un valore nullo: significa che hai un valore nullo all'interno di alcuni dei record per i quali viene eseguita una somma su un determinato campo; se non erro, la somma darà sempre un valore nullo in quei casi, anche se gli altri record possiedono un valore valido.

    Un piccolo esempio di codice per quanto detto all'inizio (non verificato).
    codice:
      if not Query.FieldByName('SOMMA').IsNull then
        valore := Query.FieldByName('SOMMA').AsInteger;
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.