I'm getting an AV error when I use the Field.ToString call on a ftVarBytes column. The easiest way to test is using USER_TAB_COLUMNS as the RAW(32) fields are of this type. Thanks for any suggestions!
-Mark
AV using AsString for ftVarBytes
We could not reproduce the problem. Please send to odac*devart*com a complete small sample that demonstrates the problem, including the script for creating database objects.
I have found columns LOW_VALUE and HIGH_VALUE in the USER_TAB_COLUMNS view that are mapped to ftVarBytes. In my case these columns contain only NULL values. I have tested this also on my own table but could not reproduce the problem.
I have found columns LOW_VALUE and HIGH_VALUE in the USER_TAB_COLUMNS view that are mapped to ftVarBytes. In my case these columns contain only NULL values. I have tested this also on my own table but could not reproduce the problem.
Could you try using the following script?
It looks like the length of RAW values are being messed up (perhaps only on D2009). It looks like a Char size vs Byte size issue (note the AV is when the data is one byte long.) I hope this helps find the problem, I'm actually not at my office this week so I can't easily send a code sample. It should happen with a simple OraQuery component and getting the Fields asString.
- update!
I'm testing with RawAsString := False. It looks like it works with RawAsString := True;
Thanks!
-Mark
Code: Select all
-- drop table rawtest;
create table rawtest
(
id number(38) primary key,
rw raw(100),
lr long raw
);
insert into rawtest values ( 1, '626262', '623262' );
insert into rawtest values ( 2, '0A0B0C0D0E0F', '0A0B0C0D0E0F' );
insert into rawtest values ( 3, '0A', '0A0B0C' );
COMMIT;
select * from rawtest where id < 3; -- Note that data is truncated.
select * from rawtest where id = 3; -- AV
- update!
I'm testing with RawAsString := False. It looks like it works with RawAsString := True;
Thanks!
-Mark