Unix Technical Forum

Invalid scale for DECIMAL datatype

This is a discussion on Invalid scale for DECIMAL datatype within the Informix forums, part of the Database Server Software category; --> Dear all, have anybody experienced the problem using Informix SDK 2.7 ? I'm trying to attach Informix table to ...


Go Back   Unix Technical Forum > Database Server Software > Informix

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-20-2008, 07:40 AM
Sergei Turin
 
Posts: n/a
Default Invalid scale for DECIMAL datatype

Dear all,

have anybody experienced the problem using Informix SDK 2.7 ? I'm
trying to attach Informix table to MS Access database with no success
in case of table with DECIMAL datatype. MS Access refuses to link the
table saying "Invalid scale for DECIMAL data type". Other SDK's and
tables work fine.

The problem is mentioned in MS KB with recommendation to upgrade to
latest MDAC, MS Jet and Informix SDK.

Unfortunately I cannot use SDK 2.8x due to problem with logon at
runtime.
I need ODBC driver to ask for password during connection to linked
tables. 2.8x stores passwords in ODBC DSN. In case of no password in
DSN, logon fails with "ODBC call failed" message.
If somebody knows how to restore old behaviour of SDK, it would be
great too.

Software versions and environment settings follow.

Thanks in advance and regards,
Sergei Turin

************************************************** *****************************

Server
HP-UX 11.01
Informix IDS 7.31UC6

Client
Windows XP SP1
MS Access 2000 / 2003 SR1
Informix SDK 2.70TC1
Latest MDAC 2.7 SP1 and MS Jet 4.0 SP7
IFX_USE_PREC_16=1

Table schema

Columns types are : integer, decimal(10), varchar(40,0), char(1),
smallint,
float, datetime year to second

Snippet from MS KB

</START>
ACC2000: "Error 3701: 'Invalid Scale for Decimal Datatype'" Error
Message When You Try to Link an Informix Table to an Access Database
This article was previously published under Q319485
</STOP>

Snippet from I-SDK 2.70 ESQL/C release notes addendum

</START>
Decimal precision for FLOAT and SMALLFLOAT conversions to DECIMAL data
type has been increased from 8 (SMALLFLOAT) and 16 (FLOAT) to 9 and
17, respectively. You might experience differences in decimal
precision after FLOAT/SMALLFLOAT to DECIMAL conversions. The functions
deccvflt() (SMALLFLOAT to DECIMAL conversion) and deccvdbl() (FLOAT to
DECIMAL conversion), which have converted float numbers to decimal
numbers with 8 digit and 16 digit precision, now have 9 digit and 17
digit precision.
For more information on the impact and scope of this feature, refer to
the Release Notes file for this release of ESQL/C. The following
section describes the IFX_USE_PREC_16 environment variable, which
provides backward compatibility.

1. IFX_USE_PREC_16 Environment Variable
A new environment variable IFX_USE_PREC_16 can be used to revert the
precision to 8/16 for all SMALLFLOAT/FLOAT to DECIMAL conversions by a
client ESQL/C program. Note that this environment variable affects the
client only and is not sent to the server.
When IFX_USE_PREC_16 is set to 1, a 9/17 client product will only use
8/16 precision to perform all SMALLFLOAT/FLOAT to DECIMAL conversions.

</STOP>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 09:43 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com