Linked Server Between SQL Server and iSeries is rounding decimals We just set up a new SQL Server 2008 database, and I got the link set up between our server and an iSeries As400 server that we get some of our data from.

The problem I'm having is that it is rounding down any floating numbers, which is a pain because we're working with dollar amounts a lot of the time.

select * FROM openquery(NADS, 'select CMD, 1.23 Type from CREDD')


On our older server this returns the CMD column, and a column called Type with 1.23 all the way down. On the new server type is just 1.00 

So far as I can tell, the link part is set up the same. The IBM i Access for Windows ODBC Setup is mostly the same, but there are some differences between versions that I'm not sure about.

Edit:
In case it matters, For the provider I'm using Microsoft OLE DB Provider for ODBC Drivers

Edit2:

provider options are the same


Linked Server properties:


iSeries Access for windows ODBC setup appears to be the same
Figured it out!!

Apparently we didn't have the latest service pack installed. We had to install the 64bit version of the service pack (32bit version failed to install), and when it finished the decimal numbers were coming across.

EDIT: In case anyone was wondering:
We're using "IBM iAccess for Windows 7.1 (07.01.0800) (64bit)" and using "Microsoft OLE DB Provider for ODBC Drivers" as the linked server sql driver.

EDIT 2017: Seeing as I just ran into this problem again and had to hunt down the service pack again, here is the link to the service pack download page, so that in a few years when I run into this problem again I will find it easier...

http://www-03.ibm.com/systems/power/software/i/access/windows_sp.html