n° 219
Novembre 2017
Giugno 22, 2018, 01:34:53 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Query e database  (Letto 2458 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Cybhunter
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 9

0
Mostra profilo
« inserita:: Settembre 09, 2003, 06:47:09 »

Ciao a tutti! Grazie per i vari aiuti che ho ricevuto!
Averei una ltro problema
ho un database access 2000
con 2 tabelle:
----------------
tabella Articolo

Id Articolo
CostoEuro
----------------
e
-----------------
tabella magazzino

Id movimento
CostoEuro
-----------------

Io leggo da tabella articoli il campo \"CostoEuro\"
ma quando lo invio a tabella magazzino mi dice che non è un valore intero!
Ovvio vale 33,50 il fatto è che Delphi considera il campo Double!
e access lo considera a precisione doppia!
ho provato cosi:



Table1.Active := True;

Table1.Append;

Table1.FieldByName(\'ID Articolo\').AsInteger:=strtoint(dbedit4.text);

Table1.FieldByName(\'CostoEU\').Asfloat:=33;

Table1.Post;


e funziona ma io devo inviare \"33,50\" non \"33\"

Qualcuno ha una idea del perchè ?
Grazie
Registrato
Alex74
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 2


Mostra profilo
« Risposta #1 inserita:: Settembre 12, 2003, 03:46:42 »

Citazione
Postato originariamente da Cybhunter
Ciao a tutti! Grazie per i vari aiuti che ho ricevuto!
Averei una ltro problema
ho un database access 2000
con 2 tabelle:
----------------
tabella Articolo

Id Articolo
CostoEuro
----------------
e
-----------------
tabella magazzino

Id movimento
CostoEuro
-----------------

Io leggo da tabella articoli il campo \"CostoEuro\"
ma quando lo invio a tabella magazzino mi dice che non è un valore intero!
Ovvio vale 33,50 il fatto è che Delphi considera il campo Double!
e access lo considera a precisione doppia!
ho provato cosi:



Table1.Active := True;

Table1.Append;

Table1.FieldByName(\'ID Articolo\').AsInteger:=strtoint(dbedit4.text);

Table1.FieldByName(\'CostoEU\').Asfloat:=33;

Table1.Post;


e funziona ma io devo inviare \"33,50\" non \"33\"

Qualcuno ha una idea del perchè ?
Grazie



Verifica il formato dei campi in Access, perchè è giusto che il campo a precisione doppia Delphi lo interpreta come double ossia a virgola mobile a doppia precisione.
Il problema potrebbero essere le impostazioni internazionali del \".\" e la \",\" nel pannello di controllo do windows. Ossia Delphi si aspetta 33.50 se lo passi come stringa, mentre se lo passi come double ci vuole il separatore impostato in windows.
Ciao
Registrato
savoweb
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 34

0
Mostra profilo
« Risposta #2 inserita:: Settembre 18, 2003, 11:42:51 »

Sinceramente il tuo messaggio è un po\' confuso comuque le mie soluzioni sono:
1 .AsFloat = Double (Vedi Help)
2 Prova .AsCurrency (.Value (Usa i variant e te lo sconsiglio))
3 in Delphi nel codice i numeri li indichi con il punto (1.555 --> 1,555)
4 In SysUtils.DecimalSeparator hai il separatore della virgola in formato carattere


Ciao e buon lavoro
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines