|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2004
Città: Roma
Messaggi: 19
|
[VB] Problema arrotondamento SqlServer 2000
Buongiorno a tutte/tutti.
Ho un problemino ![]() L'interfaccia utente (quella che da modo anche di accedere alle viste e tabelle sul db) e' scritta in VB (attualmente compilata con vb 6.0) ed accede, a seconda della scelta, via odbc, ado, oledb, ad un db sqlserver2000. Il problema (a parte me, che non ci capisco un piffero di vb e programmazione su piattaforme piccole, ed ho appena cominciato a capire qualcosa di sqlserver) e' legato alle somme dei campi numerici. Tutti gli importi sono definiti, sul db, come decimal(18, 2), a parte alcuni valori unitari che sono decimal(18, 5). Tutti i dati, estratti da ETL cobol/db2, che girano sotto s/390 estraggono e fanno caricare i dati con il corretto numero di decimali. Alcuni cubi, all'atto del drill-up, mostrano gli importi, comunque con 6 decimali e, cosa ancor piu' strana, inventandosi le cifre a partire dalla 3° dopo la virgola in poi. Ad esempio, sommando i valori tipo: 12,34 .etc.. .etc.. 98,87 ottengo un risultato tipo 123,456789. Questo stupisce sia me che, soprattutto, gli utenti. Tenendo conto che non posso cambiare il codice VB adattandolo ad ogni singolo cubo (anche perche' l'utente puo' cambiarsi i cubi a suo piacimento e realizzarne di nuovi), come posso risolvere il problema? Qualcuno mi ha detto che VB prende la definizione del campo dal DB (con una sua funzione che mi hanno mostrato) ma che, per sua natura, considera i campi decimal, comunque con almeno 6 decimali, per cui dovrei cambiare il datatype sul db(ma prima di farlo volevo qualche certezza), da decimal a non mi ricordo piu' quale datatype. Qualcuno saprebbe dirmi qualcosa al riguardo? Grazie, Andrea Ultima modifica di andreadue : 19-10-2007 alle 11:43. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Aug 2004
Città: Roma
Messaggi: 19
|
Possibile che fosse un datatype money o qualcosa del genere?
Ma, nel caso, come fa a capire quanti sono i decimali? ![]() Ultima modifica di andreadue : 22-10-2007 alle 15:43. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Aug 2004
Città: Roma
Messaggi: 19
|
Da quel che so dell'installazione presso il cliente, vi sono differenze tra le impostazioni internazionali del server e dei clients.
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Premetto che non ho capito quasi niente di quello che hai scritto, cmq ho avuto un problema simile di arrotondamento, per poi scoprire che il thread dell'applicazione (vb.net) girava con CultureInfo italiana, non inglese, e all'atto del "cast" nel mio caso da stringa a decimale il punto (separatore in inglese, am non in italiano) veniva rimosso.
ho risolto impostando il cultureinfo su inglese. spero di averti dato almeno uno spunto da cui cercare il tuo baco ![]() ciao ![]() |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Aug 2004
Città: Roma
Messaggi: 19
|
Grazie ma, purtroppo, e' stata una delle prime prove che abbiamo fatto (suggerita da chi ci capisce qualcosa, non certo da me)
![]()
__________________
Per la gratuita' dell'adozione, per dare un futuro a migliaia di bambini: http://www.amicideibambini.it/petizione/ |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:23.