bug with number dataproviders and ORACLE 9i

The Column in Oracle is defined as:
NUMBER (30,8)

When I open the Dialog in servoy developer for Defining Dataproviders and browse to the table, I see my dataprovider as:

Type: number
Length: 8

My problem is when typing on the dataprovider the number

10500200.59

After the dataprovider looses the focus it automatically converts it to:

10500200

The decimals are gone !!!

With which version of Servoy are you experimenting that?

Servoy Developer
Version R2 2.0.4-build 277
Java version 1.4.2_03-b02 (Windows 2000)

Can you give 2.1b5 a try? You can download it from the beta section of downloads on the developer website. I have a few apps using it pointing to oracle 9i databases and they work really well.

You are very lucky!

I’ve tried it with beta5 and it doesn’t work.

Are you sure you don’t have a format set on that field that discards that part? If not if you set a format like ##.## (or ##.00)

Is the database updated with the right value?

What version of the oracle drivers do you use?

The problem I’ve described was tested without format.

With the format ##.##,
In Developer I input 111.1234, Servoy shows 111.12 and oracle has 111.1234.
In Client running against Server I input 111.1234, Servoy shows 111.12 and oracle has 111.

With the format ##.00,
In Developer I input 111.1234, Servoy shows 111.12 and oracle has 111.1234.
In Client running against Server I input 111.1234, Servoy shows 111.12 and oracle has 111.

In both cases, same result.

Oracle driver: classes12.jar
Connection string: jdbc:oracle:oci:@(description=(address=(host=XX.XX.XX.XX)(protocol=tcp)(port=XXXX))(connect_data=(SERVICE_NAME=XXX.XXX)(SERVER=DEDICATED)))

that is very strange.
So in the developer everything is ok.
But through the lcient it kill the decimals behind the .?

can you start the server with -DSTACKTRACE=TRUE?
and see what inserts are being done into oracle?

This is what I see:

sql update TEST set NUM = ? where TEST.ID_TEST = ?
questiondata[0] 111.1234
questiondata[1] 0.0

but in Oracle the value is set to 111.

My guess is that somwhere behind this point the value has to be parsed and it looses the decimals.

behind that point is out of our control.
What i find strange is that youre test_id = 0 ???
Why is that 0? Is that really the right PK?

yes the ID is 0.

Will be fixed in Servoy 2.1 rc1

this seems to work in rc2