Inserting wrong data if data type is Double and 0(zero) is the last digit
-------------------------------------------------------------------------

                 Key: TORQUE-53
                 URL: http://issues.apache.org/jira/browse/TORQUE-53
             Project: Torque
          Issue Type: Bug
    Affects Versions: 3.2
         Environment: Windows NT
            Reporter: Sudhakar Pandey


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.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to