Page 1 of 1

OraQuery.ParamByName('MY_INT').AsInteger := 0 NOK

Posted: Fri 26 Jun 2009 12:31
by michellenweiter
The version ODAC NET 6.80.0.47 with D2009, ParamByName('x').AsInteger doesn't work anymore!

The version ODAC NET 6.70.05.45 with BDS 2005 is working fine.

Here is the code:

OraQuery.sql := 'Insert into MY_SCHEMA.MY_TABLE (MY_INT)
Values (:MY_INT)';

OraQuery.ParamByName('MY_INT').AsInteger := 0;
OraQuery.prepare;
OraQuery.execsql;

=> exception class EInternalError with message
EOraError with message 'ORA-01438: value larger than specified precision allowed for this colimn'.

In Oracle this attribute is defined as Date and the same code works fine with BD2005 and your version 8.70.

thanks
michel

Posted: Fri 26 Jun 2009 14:06
by michellenweiter
I got also an error with the

oraQuery.ParamByName('MY_TIME').asTime := MyTTime;
oraQuery.prepare;
oraQuery.execsql;

=> EOraError with message 'ORA-01483: invalid length for DATE or NUMBER bind variable'.

Posted: Fri 26 Jun 2009 14:19
by michellenweiter
Hint:

it works fine when orasassion.Options.Direct := false,
but NOT when oraSession.Options.Direct := true; which is the mode we must use.

Posted: Thu 02 Jul 2009 10:56
by Plash
We have fixed this problem. The fix will be included in the next build of ODAC.

Posted: Mon 31 Aug 2009 14:15
by michellenweiter
I downloaded the build 6.80.48 and it dtill does not work!
Are you sure you have tested the '.astime' and in NET Mode?

Posted: Tue 01 Sep 2009 07:55
by Plash
The version 6.80.0.48 was released before the fix. The fix will be included in the next ODAC build.