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

    [DELPHI 2010] Disattivare i BCD

    Buonasera a tutti,

    c'è un modo per dire a al RAD Studio 2010 di ignorare, dimenticare, non usarenemmenosottotortura i tipo di Field BCD?

    ogni volta che leggo dal db un campo definito decimal Delphi genera dei TFMTBCDField che mi generano svariati problemi, oltre al fatto che NON mi servono.
    come posso dirgli di interpretarli come dei semplicissimi TFloatField?

    oltre a fare il cast, campo per campo, all'interno dell'istruzione SQL, opzione poco pratica a conti fatti...

    Grazie

  2. #2
    up

    please

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Se vuoi configurare manualmente i campi rappresentati in un generico DataSet, devi definirli in modo persistente: fai doppio clic sulla tabella/query/comando di riferimento e li aggiungi, definendo le loro proprietà in modo fisso e preciso (sostituendo quindi quelle determinate da Delphi a runtime, quando crea dinamicamente tale struttura), oppure li inserisci tutti in automatico lasciandoli inizializzare a Delphi e rimuovi quelli che non ti interessano.

    Tuttavia, se Delphi sceglie il formato TFMTBCDField, è abbastanza probabile che questo sia il tipo corretto per rappresentare il campo: non puoi scegliere un altro tipo di campo arbitrariamente, perché altrimenti rimane "scollato" rispetto a quello che dovrebbe essere il campo corretto tenendo conto della struttura fisica di memorizzazione del campo.

    Di che tipo sono su DB questi campi problematici?

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

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

  4. #4
    il DB è un IBM DB2 per Linux e i campi in questione sono definiti decimal.

    il problema di lasciarli come BCD è che il programma mi va in errore già al caricamento dando un "BCD Overflow"

    premetto che la query(TSQLQuery) è collegata ad una griglia di terze parti.

  5. #5
    Ritorno sotto a questa cosa, haimè...

    Cambiano leggermente le condizioni, nel senso che aldesso il componente che uso è un TSimpleDataSet collegato ad una tabella sempre IBMDB2xLinux come command type ctTable, ma il succo non cambia:

    Facendo il RetrieveFields D2010 decide che il campo decimale è un BCD. peccato che quando cerco di caricare la tabella collegata -con un singolo record e un singolo valore (20131016.171709)- parte il BCD Overflow.

    lessi tempo fa girovagando su internet che un tizio aveva risolto forzando a codice la precisione dei decimali del formato BCD che pare essere nativamente "buggata" a 0. purtroppo quando lo trovai ero di corsa e non ebbi il buon senso di linkare la pagina e adesso non la ritrovo.

    Come posso fare? i casi son 2, o trovo il modo di non usare i BCD o riesco a farli funzionare senza problemi...

    ...Help...

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.