Hi,
I am using LLBLGen 3, self servicing set and Oracle .NET driver ODP.NET.
I get the "Arithmetic operation resulted in an overflow" when I do a GetMulti on a table that actually has a large number within the data.
The error is thrown by the oracle driver because it is trying to cast it to Decimal which is precision 18 I believe.
Oracle has a OracleDecimal type defined within the driver, is there a way to tell LLBLGen to use it instead of System.Decimal. I've tested this with straight ADO.NET code below. DataAdapter has a flag ReturnProviderSpecificTypes in which case DataAdapter does return the OracleDecimal and the code works. Without it, a same exception as when doing GetMulti gets thrown...
Oracle.DataAccess.Client.OracleConnection objOracleConnection = new Oracle.DataAccess.Client.OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString.Oracle (ODP.NET)"]);
Oracle.DataAccess.Client.OracleCommand objOracleCommand = new Oracle.DataAccess.Client.OracleCommand();
objOracleCommand.Connection = objOracleConnection;
objOracleCommand.CommandType = System.Data.CommandType.Text;
objOracleCommand.CommandText = "SELECT * FROM DF_INTEG_TEST.\"FrameworkTest\"";
Oracle.DataAccess.Client.OracleDataAdapter objSqlDataAdapter = new Oracle.DataAccess.Client.OracleDataAdapter(objOracleCommand);
objSqlDataAdapter.ReturnProviderSpecificTypes = true;
System.Data.DataSet objDataSet = new System.Data.DataSet();
objSqlDataAdapter.Fill(objDataSet);
Just looking for some thoughts... I actually have a workaround for this (change the schema to use precision 18 numbers). Just for reference our schema script was written to create INTEGER oracle field (which is precision 38 number).