You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by "CG Monroe (JIRA)" <ji...@apache.org> on 2007/11/08 16:48:50 UTC

[jira] Resolved: (TORQUE-53) Inserting wrong data if data type is Double and 0(zero) is the last digit

     [ https://issues.apache.org/jira/browse/TORQUE-53?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

CG Monroe resolved TORQUE-53.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 3.3-RC3

Added better conversion handling in Village for BigDecimal values.  Double and Float types will be converted using appropriate constructors rather than the somewhat buggy BigDecimal(String) constructor.


> Inserting wrong data if data type is Double and 0(zero) is the last digit
> -------------------------------------------------------------------------
>
>                 Key: TORQUE-53
>                 URL: https://issues.apache.org/jira/browse/TORQUE-53
>             Project: Torque
>          Issue Type: Bug
>          Components: Runtime, Village
>    Affects Versions: 3.2
>         Environment: Windows NT
>            Reporter: Sudhakar Pandey
>            Assignee: CG Monroe
>             Fix For: 3.3-RC3
>
>
> Problem: Torque is inserting wrong data in the database for Double type. 
> Database description
> ~~~~~~~~~~~~~~~~~
> Database: Oracle 10g
> Oracle JDBC version: 10.2.0.1.0
> Table Name: Bank_Account
> Column Name: Current_Balance
> Column dataType: NUMBER(15,4)
> When I am trying to enter a value new Double(1234567890) it insert/update 12.3456 in the database. This happens only if the number of digits are more than 7 and last digit is 0(zero).
> I have tried updating using directly PreparedStatement and it just worked fine. Problem comes only with Torque.
> Following is the program I have used for varification:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> <Code>
> ............
> 	public static void main(String argv[]) {
> 		TorqueInitializer.init();
> 		Connection db_connection = null;
> 		db_connection = Common.getConnection();
> 		
> 		if (db_connection == null) {
> 			System.out.println("Unable to get dbConnection");
> 		}
> 		
> 		try {
> 			BankAccount bankAccount = showCurrentBalance(db_connection);
> 			long value = 12345l;
> 			for (int i = 5; i < 11; i++, value = ((value * 10) + i)) {
> 				System.out.println("Value=" + value);		
> 				System.out.print("<Before update> ");
> 				bankAccount = showCurrentBalance(db_connection);
> 				
> 				if (updateUsingPrepStat)
> 					updateCurrentBalanceUsingPStat(db_connection, new Double(
> 							value * 10));
> 				else
> 					updateCurrentBalanceUsingTorque(bankAccount, db_connection,
> 							new Double(value * 10));
> 				System.out.print("<After update> ");
> 				bankAccount = showCurrentBalance(db_connection);
> 			}
> 		} catch (Exception e) {
> 			e.printStackTrace();
> 		} finally {
> 			
> 			if (db_connection != null)
> 				try {
> 					db_connection.close();
> 				} catch (SQLException e) {
> 					e.printStackTrace();
> 				}
> 		}
> 	}
> 	
> 	public static BankAccount showCurrentBalance(Connection db_connection) {
> 		try {
> 			Criteria c = new Criteria();
> 			c.add(BankAccountPeer.BANK_ACCOUNT_ID, new Long(1523764));
> 			List list = BankAccountPeer.doSelect(c, db_connection);
> 			BankAccount bankAccount = (BankAccount) list.get(0);
> 			System.out.println("Current account balance: "
> 					+ bankAccount.getCurrentBalance());
> 			return bankAccount;
> 		} catch (TorqueException e) {
> 			e.printStackTrace();
> 		}
> 		return null;
> 	}
> 	
> 	public static void updateCurrentBalanceUsingTorque(BankAccount bankAccount,
> 			Connection db_connection, Double value) throws Exception {
> 		bankAccount.setCurrentBalance(value);
> 		bankAccount.save(db_connection, "ibdv70");
> 	}
> ............
> </Code

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org