I believe there is a bug in TOracleDataSet.FetchRowId.
The line
if v = null or ((f.DataType = ftString) and (v = ''))
is evaluated in wrong order in Delphi 6. Delphi applies the OR-operator to the right side and compares then with the variable v.
This raises an exception of type EVariantInvalidOpError.
Following code solves the problem
if (v = null) or ((f.DataType = ftString) and (v = ''))
The situation occurs when a record is inserted in a query, which contains a ROWID and the properties UniqueFields and UpdatatingTable are set.
Best regards
Frank Neuhaus
CPA SoftwareConsult GmbH
------------------
The line
if v = null or ((f.DataType = ftString) and (v = ''))
is evaluated in wrong order in Delphi 6. Delphi applies the OR-operator to the right side and compares then with the variable v.
This raises an exception of type EVariantInvalidOpError.
Following code solves the problem
if (v = null) or ((f.DataType = ftString) and (v = ''))
The situation occurs when a record is inserted in a query, which contains a ROWID and the properties UniqueFields and UpdatatingTable are set.
Best regards
Frank Neuhaus
CPA SoftwareConsult GmbH
------------------