[ 
http://issues.apache.org/jira/browse/TORQUE-53?page=comments#action_12429040 ] 
            
Sudhakar Pandey commented on TORQUE-53:
---------------------------------------

One more observation!

If we try to enter new Double(1234567890.1234) even Torque also inserts the 
correct data. It means problem occurs for following case:
1. Number-of-digits is more then seven (in my case where column is of size 
(15,4))
2. Last digit is zero.
3. No decimal and digits after decimal.

We are facing this problem in our production environment and hence any solution 
or work around will be helpful.

I am counting on you folks:).
Thanks alot


> 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