English
Instant Developer Foundation Documentazione
  • Note di rilascio
  • Versioni precedenti
  • Versione 11.1.4900
  • Correzioni

DBA: Funzione toFloat su MySql

copia link

Descrizione del difetto

Le funzioni di libreria ToFloat e ToCurrency non funzionavano correttamente se si utilizzava il database MySQL. Il malfunzionamento era dovuto al fatto che tali funzioni venivano tradotte nell'espressione SQL

   CAST($1 as decimal)
dove $1 era il valore di cui effettuare la conversione. Su database MySQL il numero predefinito di decimali è 0 pertanto le funzioni ToFloat e ToCurrency effettuavano un arrotondamento. Ora le funzioni ToFloat e ToCurrency vengono tradotte nell'espressione SQL
   CAST($1 as decimal(20,8))

Durante i test è emerso che la funzione di libreria ToCurrency non funzionava correttamente se si utilizzava il database DB2UDB. La causa era dovuta all'espressione SQL utilizzata da In.de per la conversione. La funzione ToCurrency, infatti, veniva tradotta nell'espressione SQL
   DECIMAL($1)
Anche su DB2UDB la funzione DECIMAL prevede un numero di decimali pari a 0. L'espressione SQL utilizzata a partire dalla versione 11.1 è
   DECIMAL($1, 15, 8)

Effetti del malfunzionamento

  • La funzione di libreria ToFloat effettuava l'arrotondamento se si utilizzava il database MySQL.
  • La funzione di libreria ToCurrency effettuava l'arrotondamento se si utilizzavano i database MySQL o DB2UDB.

Soluzioni

Era sufficiente cambiare l'espressione delle funzioni di libreria ToFloat e ToCurrency in quelle indicate sopra.

Funzionalità interessate

L'utilizzo delle funzioni ToFloat e ToCurrency su MySQL e DB2UDB.

Note

  • Malfunzionamento segnalato in questo thread del forum.

Ultima modifica: 23/03/2021 / Validità: da 11.1.4900

Vedi anche

  • To Float (funzione)
  • To Currency (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum