Problems with OracleCommandBuilder on mono
Problems with OracleCommandBuilder on mono
Hello,
I encountered problems with the OracleCommandBuilder on mono. Basically, it seems that the OracleCommandBuilder is not working at all with mono 2.0.1 running on Ubuntu 9.04 x86. On Windows 7 x64 Ultimate, everything runs fine.
You can find a sample project and the console output dumps here.
I always connected to the same Oracle XE 10g Server running on the Windows 7 x64 machine.
Can you reproduce the problems? If not, what do I wrong? If yes, can I expect a fix for this? If yes, when?
Thank you very much in advance for any help!
Greetings - Richie
I encountered problems with the OracleCommandBuilder on mono. Basically, it seems that the OracleCommandBuilder is not working at all with mono 2.0.1 running on Ubuntu 9.04 x86. On Windows 7 x64 Ultimate, everything runs fine.
You can find a sample project and the console output dumps here.
I always connected to the same Oracle XE 10g Server running on the Windows 7 x64 machine.
Can you reproduce the problems? If not, what do I wrong? If yes, can I expect a fix for this? If yes, when?
Thank you very much in advance for any help!
Greetings - Richie
Mono behaviour differs from Microsoft .NET one, which we expect to get.
We have overcome the following problems:
- Mono's CommandBuilder generates UpdateCommands with parameters, which have @ at the beginning;
- Mono doesn't store parameters with sourceColumnNullMapping=true in the parameters collection (Mono's bug);
- DbParameter.SourceColumnNullMapping is not supported at the base level at all;
- the event, which sets the CommandBuilder.DataAdapter property, doesn't arise.
There is no way to support these features:
- automatic work with the RowId column in DataAdapter;
- OracleCommandBuilder.UpdatingFields and OracleCommandBuilder.RefreshingFields are not supported;
- Dynamic SQL generation for the UpdateCommand against a SelectCommand that does not return any key column information is not supported.
We have overcome the following problems:
- Mono's CommandBuilder generates UpdateCommands with parameters, which have @ at the beginning;
- Mono doesn't store parameters with sourceColumnNullMapping=true in the parameters collection (Mono's bug);
- DbParameter.SourceColumnNullMapping is not supported at the base level at all;
- the event, which sets the CommandBuilder.DataAdapter property, doesn't arise.
There is no way to support these features:
- automatic work with the RowId column in DataAdapter;
- OracleCommandBuilder.UpdatingFields and OracleCommandBuilder.RefreshingFields are not supported;
- Dynamic SQL generation for the UpdateCommand against a SelectCommand that does not return any key column information is not supported.
-
- Posts: 6
- Joined: Mon 27 Jul 2009 08:09
Hello!
We've made some modifications related to the Mono sources related to the matters that you wrote above and managed to successfully run the test project under Ubuntu, however we got stuck with the following exception when running under AIX.
The test code we're using is virtually the same as the one in the zip of the first post.
We're using the Devart.Oracle.Data.dll version 5.25.48.0, and the test environment is a virtual node with two POWER 3,6GHz cores running AIX 6.1. The Mono framework is a custom build from a patched version 2.4.2.3
Note: the exception occurs with the original version of the Mono build as well, without our modifications.
Thank you and any ideas are greately appreciated.
Best regards,
Adic
We've made some modifications related to the Mono sources related to the matters that you wrote above and managed to successfully run the test project under Ubuntu, however we got stuck with the following exception when running under AIX.
Code: Select all
Creating Connection...
Drop test table, if it already exists...
Creating table DDEML_TEST...
Creating test data...
Test case 1: Create UPDATE command with OracleCommand on a table that DOES NOT have a PK...
Creating INSERT command...
FAILED: System.Exception: NET: Unknown error 1
at Devart.Data.Oracle.p.b (Int32 A_0) [0x00000]
at Devart.Data.Oracle.bm.c () [0x00000]
at Devart.Data.Oracle.t.a (Int32 A_0, a5 A_1) [0x00000]
at Devart.Data.Oracle.OracleCommand.InternalExecute (CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords) [0x00000]
at Devart.Common.DbCommandBase.ExecuteDbDataReader (CommandBehavior behavior) [0x00000]
Creating PK PK_DDEML_TEST for table DDEML_TEST...
FATAL EXCEPTION: System.Exception: NET: Unknown error 1
at Devart.Data.Oracle.p.b (Int32 A_0) [0x00000]
at Devart.Data.Oracle.p.a () [0x00000]
at xc.d.a (Byte A_0) [0x00000]
at xc.b.a (Byte A_0) [0x00000]
at xc.a.a () [0x00000]
at xc.e.a () [0x00000]
at Devart.Data.Oracle.d.a () [0x00000]
at Devart.Data.Oracle.t.a (Int32 A_0, a5 A_1) [0x00000]
at Devart.Data.Oracle.OracleCommand.InternalExecute (CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords) [0x00000]
at Devart.Common.DbCommandBase.ExecuteDbDataReader (CommandBehavior behavior) [0x00000]
We're using the Devart.Oracle.Data.dll version 5.25.48.0, and the test environment is a virtual node with two POWER 3,6GHz cores running AIX 6.1. The Mono framework is a custom build from a patched version 2.4.2.3
Note: the exception occurs with the original version of the Mono build as well, without our modifications.
Thank you and any ideas are greately appreciated.
Best regards,
Adic
-
- Posts: 6
- Joined: Mon 27 Jul 2009 08:09
Yes, we're aware of that, and as stated at the beginning of the thread we intend to improve upon Mono code and make Oracle component run on Mono... However in this particular case it is hard to pinpoint the problem in the Mono code if we can't debug or analyze what went wrong in the query generation from Devart's point of view.
I think it is beneficial for both parties if we could analyze the problem in detail.
Running Oracle with Mono on both Ubuntu and AIX it is crucial for us, so if we won't be able to find a solution for this with Devart, we'll have to seek other components which can support us in achieving this goal.
I think it is beneficial for both parties if we could analyze the problem in detail.
Running Oracle with Mono on both Ubuntu and AIX it is crucial for us, so if we won't be able to find a solution for this with Devart, we'll have to seek other components which can support us in achieving this goal.