Problem with some raw field values
Posted: Thu 13 Feb 2020 11:54
Hello,
I have a problem with a table, which has raw fields. Some RAW values causing access violation errors, when posting this table.
Oracle 11.2.0.3
Oracle client 12
Delphi 10.2.3
Devart ODAC 11.0.1
Windows 10x64
I created a small table, with two rows. The first row is OK, but the second row causes problems.
SQL Part:
create table t_raw_error(
c_mindegy varchar2(10),
c_jel raw(32)
);
insert into t_raw_error(c_mindegy,c_jel) values('user1','377BEACAFF497A5D5997CB54C61D0BE9');
insert into t_raw_error(c_mindegy,c_jel) values('user2','74E11E978BC3CA62A0E19451D430CB91');
commit;
Delphi Part:
Put this ToraTable component on a form, and try to open, edit and post it.
object BAN: TOraTable
TableName = 't_raw_error'
OrderFields = 'c_mindegy'
KeyFields = 'c_mindegy'
object BANC_MINDEGY: TStringField
FieldName = 'C_MINDEGY'
Size = 10
end
object BANC_JEL: TVarBytesField
FieldName = 'C_JEL'
Size = 32
end
end
BAN.Open;
BAN.Edit; // user1. It is OK
BAN.Post;
BAN.Next;
BAN.Edit; // User2 will fail
BAN.Post;
I cannot copy the call stack, but the AV occurs after TDASQLGenerator.FieldModified, TData.CompareFieldValue, TOCIRecordSet.InternalCompareFieldValue
Access violation at address 006E946B in module 'odatesz.exe'. Read of address 00000000.
I have a problem with a table, which has raw fields. Some RAW values causing access violation errors, when posting this table.
Oracle 11.2.0.3
Oracle client 12
Delphi 10.2.3
Devart ODAC 11.0.1
Windows 10x64
I created a small table, with two rows. The first row is OK, but the second row causes problems.
SQL Part:
create table t_raw_error(
c_mindegy varchar2(10),
c_jel raw(32)
);
insert into t_raw_error(c_mindegy,c_jel) values('user1','377BEACAFF497A5D5997CB54C61D0BE9');
insert into t_raw_error(c_mindegy,c_jel) values('user2','74E11E978BC3CA62A0E19451D430CB91');
commit;
Delphi Part:
Put this ToraTable component on a form, and try to open, edit and post it.
object BAN: TOraTable
TableName = 't_raw_error'
OrderFields = 'c_mindegy'
KeyFields = 'c_mindegy'
object BANC_MINDEGY: TStringField
FieldName = 'C_MINDEGY'
Size = 10
end
object BANC_JEL: TVarBytesField
FieldName = 'C_JEL'
Size = 32
end
end
BAN.Open;
BAN.Edit; // user1. It is OK
BAN.Post;
BAN.Next;
BAN.Edit; // User2 will fail
BAN.Post;
I cannot copy the call stack, but the AV occurs after TDASQLGenerator.FieldModified, TData.CompareFieldValue, TOCIRecordSet.InternalCompareFieldValue
Access violation at address 006E946B in module 'odatesz.exe'. Read of address 00000000.