2003-02-11 Tim Coleman <tim@timcoleman.com>
authorTim Coleman <tim@mono-cvs.ximian.com>
Wed, 12 Feb 2003 03:57:47 +0000 (03:57 -0000)
committerTim Coleman <tim@mono-cvs.ximian.com>
Wed, 12 Feb 2003 03:57:47 +0000 (03:57 -0000)
* System.Data.OracleClient.Oci/OciAttributeType.cs:
* System.Data.OracleClient.Oci/OciCredentialType.cs:
* System.Data.OracleClient.Oci/OciDescriptorType.cs:
* System.Data.OracleClient.Oci/OciEnvironmentMode.cs:
* System.Data.OracleClient.Oci/OciExecuteMode.cs:
* System.Data.OracleClient.Oci/OciHandleType.cs:
* System.Data.OracleClient.Oci/OciLobType.cs:
* System.Data.OracleClient.Oci/OciPointerType.cs:
* System.Data.OracleClient.Oci/OciSessionMode.cs:
* System.Data.OracleClient.Oci/OciStatementLanguage.cs:
* System.Data.OracleClient.Oci/OciStatementMode.cs:
* System.Data.OracleClient.Oci/OciStatementType.cs:
* System.Data.OracleClient.Oci/OciTransactionFlags.cs:
New files for Oci namespace
* list:
* makefile.gnu:
Update these files to fix linux build
* System.Data.OracleClient/OciGlue.cs:
Use OCI through P/Invoke directly, rename namespace
* System.Data.OracleClient/OracleCommand.cs:
* System.Data.OracleClient/OracleConnection.cs:
* System.Data.OracleClient/OracleDataReader.cs:
* System.Data.OracleClient/OracleParameter.cs:
* System.Data.OracleClient/OracleParameterCollection.cs:
* System.Data.OracleClient/OracleTransaction.cs:
Retrofit these files for the changes in OciGlue.cs

svn path=/trunk/mcs/; revision=11516

23 files changed:
mcs/class/System.Data.OracleClient/ChangeLog
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciAttributeType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciCredentialType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDescriptorType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciEnvironmentMode.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciExecuteMode.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciHandleType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciLobType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciPointerType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciSessionMode.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementLanguage.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementMode.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementType.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciTransactionFlags.cs [new file with mode: 0644]
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OciGlue.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleCommand.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleConnection.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleDataReader.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameterCollection.cs
mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleTransaction.cs
mcs/class/System.Data.OracleClient/list
mcs/class/System.Data.OracleClient/makefile.gnu

index 13964b674654f7f51638b8cbf369141a9483dca7..72551f406c44fdcd96d4d7a1764cc76363e13335 100755 (executable)
@@ -1,3 +1,31 @@
+2003-02-11  Tim Coleman <tim@timcoleman.com>
+       * System.Data.OracleClient.Oci/OciAttributeType.cs:
+       * System.Data.OracleClient.Oci/OciCredentialType.cs:
+       * System.Data.OracleClient.Oci/OciDescriptorType.cs:
+       * System.Data.OracleClient.Oci/OciEnvironmentMode.cs:
+       * System.Data.OracleClient.Oci/OciExecuteMode.cs:
+       * System.Data.OracleClient.Oci/OciHandleType.cs:
+       * System.Data.OracleClient.Oci/OciLobType.cs:
+       * System.Data.OracleClient.Oci/OciPointerType.cs:
+       * System.Data.OracleClient.Oci/OciSessionMode.cs:
+       * System.Data.OracleClient.Oci/OciStatementLanguage.cs:
+       * System.Data.OracleClient.Oci/OciStatementMode.cs:
+       * System.Data.OracleClient.Oci/OciStatementType.cs:
+       * System.Data.OracleClient.Oci/OciTransactionFlags.cs:
+               New files for Oci namespace
+       * list:
+       * makefile.gnu:
+               Update these files to fix linux build
+       * System.Data.OracleClient/OciGlue.cs:
+               Use OCI through P/Invoke directly, rename namespace
+       * System.Data.OracleClient/OracleCommand.cs:
+       * System.Data.OracleClient/OracleConnection.cs:
+       * System.Data.OracleClient/OracleDataReader.cs:
+       * System.Data.OracleClient/OracleParameter.cs:
+       * System.Data.OracleClient/OracleParameterCollection.cs:
+       * System.Data.OracleClient/OracleTransaction.cs:
+               Retrofit these files for the changes in OciGlue.cs
+
 2003-02-10  Tim Coleman <tim@timcoleman.com>
        * System.Data.OracleClient/OracleDataReader.cs:
        * System.Data.OracleClient/OracleParameter.cs:
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciAttributeType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciAttributeType.cs
new file mode 100644 (file)
index 0000000..25a9093
--- /dev/null
@@ -0,0 +1,82 @@
+// 
+// OciAttributeType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciAttributeType {
+               FunctionCode = 0x01,
+               ObjectMode = 0x02,
+               NonBlockingMode = 0x03,
+               SqlCode = 0x04,
+               Environment = 0x05,
+               Server = 0x06,
+               Session = 0x07,
+               Transaction = 0x08,
+               RowCount = 0x09,
+               SqlFunctionCode = 0x0a,
+               PrefetchRows = 0x0b,
+               NestedPrefetchRows = 0x0c,
+               PrefetchMemory = 0x0d,
+               NestedPrefetchMemory = 0x0e,
+               CharacterCount = 0x0f,
+               PackedDecimalScale = 0x10,
+               PackedDecimalFormat = 0x11,
+               ParameterCount = 0x12,
+               RowId = 0x13,
+               CharacterSet = 0x14,
+               NChar = 0x15,
+               Username = 0x16,
+               Password = 0x17,
+               StatementType = 0x18,
+               InternalName = 0x19,
+               ExternalName = 0x1a,
+               TransactionId = 0x1b,
+               TransactionLock = 0x1c,
+               TransactionName = 0x1d,
+               HeapAlloc = 0x1e,
+               CharacterSetId = 0x1f,
+               CharacterSetForm = 0x20,
+               MaxDataSize = 0x21,
+               CacheOptimalSize = 0x22,
+               CacheMaxSize = 0x23,
+               PinOption = 0x24,
+               AllocDuration = 0x25,
+               PinDuration = 0x26,
+               FormatDescriptorObject = 0x27,
+               PostProcessingCallback = 0x28,
+               PostProcessingContext = 0x29,
+               RowsReturned = 0x2a,
+               FailoverCallback = 0x2b,
+               InV8Mode = 0x2c,
+               LobEmpty = 0x2d,
+               SessionLanguage = 0x2e,
+
+               /* Attributes common to columns and stored procedures */
+               DataSize = 0x01,
+               DataType = 0x02,
+               DisplaySize = 0x03,
+               Name = 0x04,
+               Precision = 0x05,
+               Scale = 0x06,
+               IsNull = 0x07,
+               TypeName = 0x08,
+               SchemaName = 0x09,
+               SubName = 0x0a,
+               Position = 0x0b
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciCredentialType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciCredentialType.cs
new file mode 100644 (file)
index 0000000..2f8ec70
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// OciCredentialType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciCredentialType {
+               RDBMS = 0x01,
+               External = 0x02,
+               Proxy = 0x03
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDescriptorType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDescriptorType.cs
new file mode 100644 (file)
index 0000000..3078a9b
--- /dev/null
@@ -0,0 +1,45 @@
+// 
+// OciDescriptorType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciDescriptorType {
+               LobLocator = 0x32,
+               Snapshot = 0x33,
+               ResultSet = 0x34,
+               Parameter = 0x35,
+               RowId = 0x36,
+               ComplexObject = 0x37,
+               FileLobLocator = 0x38,
+               EnqueueOptions = 0x39,
+               DequeueOptions = 0x3a,
+               MessageProperties = 0x3b,
+               Agent = 0x3c,
+               Locator = 0x3d,
+               IntervalYearToMonth = 0x3e,
+               IntervalDayToSecond = 0x3f,
+               Notify = 0x40,
+               Date = 0x41,
+               Time = 0x42,
+               TimeWithTZ = 0x43,
+               TimeStamp = 0x44,
+               TimeStampWithTZ = 0x45,
+               TimeStampLocal = 0x46,
+               UserCallback = 0x47
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciEnvironmentMode.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciEnvironmentMode.cs
new file mode 100644 (file)
index 0000000..c0a4ba4
--- /dev/null
@@ -0,0 +1,34 @@
+// 
+// OciEnvironmentMode.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       [Flags]
+       internal enum OciEnvironmentMode {
+               Default = 0x00,
+               Threaded = 0x01,
+               Object = 0x02,
+               Events = 0x04,
+               Shared = 0x10,
+               NoUserCallback = 0x40,
+               NoMutex = 0x80,
+               SharedExt = 0x100,
+               Cache = 0x200,
+               NoCache = 0x400
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciExecuteMode.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciExecuteMode.cs
new file mode 100644 (file)
index 0000000..38110d9
--- /dev/null
@@ -0,0 +1,35 @@
+// 
+// OciExecuteMode.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       [Flags]
+       internal enum OciExecuteMode {
+               Default = 0x00,
+               BatchMode = 0x01,
+               ExactFetch = 0x02,
+               KeepFetchState = 0x04,
+               ScrollableCursor = 0x08,
+               DescribeOnly = 0x10,
+               CommitOnSuccess = 0x20,
+               NonBlocking = 0x40,
+               BatchErrors = 0x80,
+               ParseOnly = 0x100,
+               ShowDmlWarnings = 0x400
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciHandleType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciHandleType.cs
new file mode 100644 (file)
index 0000000..afce2b6
--- /dev/null
@@ -0,0 +1,40 @@
+// 
+// OciHandleType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciHandleType {
+               Environment = 0x01,
+               Error = 0x02,
+               Service = 0x03,
+               Statement = 0x04,
+               Bind = 0x05,
+               Define = 0x06,
+               Describe = 0x07,
+               Server = 0x08,
+               Session = 0x09,
+               Transaction = 0x0a,
+               ComplexObject = 0x0b,
+               Security = 0x0c,
+               Subscription = 0x0d,
+               DirectPathContext = 0x0e,
+               DirectPathColumnArray = 0x0f,
+               DirectPathStream = 0x10,
+               Process = 0x11
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciLobType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciLobType.cs
new file mode 100644 (file)
index 0000000..564d8fd
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// OciLobType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciLobType {
+               Blob = 0x01,
+               Clob = 0x02
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciPointerType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciPointerType.cs
new file mode 100644 (file)
index 0000000..0ab5980
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// OciPointerType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciPointerType {
+               Name = 0x01,
+               Ref = 0x02,
+               Ptr = 0x03
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciSessionMode.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciSessionMode.cs
new file mode 100644 (file)
index 0000000..9feebfe
--- /dev/null
@@ -0,0 +1,29 @@
+// 
+// OciSessionMode.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       [Flags]
+       internal enum OciSessionMode {
+               Default = 0x00,
+               Migrate = 0x01,
+               SysDBA = 0x02,
+               SysOper = 0x04,
+               PrelimAuth = 0x08
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementLanguage.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementLanguage.cs
new file mode 100644 (file)
index 0000000..244d3c4
--- /dev/null
@@ -0,0 +1,26 @@
+// 
+// OciStatementLanguage.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciStatementLanguage {
+               NTV = 0x01,
+               V7 = 0x02,
+               V8 = 0x03
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementMode.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementMode.cs
new file mode 100644 (file)
index 0000000..041b7c3
--- /dev/null
@@ -0,0 +1,25 @@
+// 
+// OciStatementMode.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciStatementMode {
+               Default = 0x00,
+               NoSharing = 0x01
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementType.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciStatementType.cs
new file mode 100644 (file)
index 0000000..370630d
--- /dev/null
@@ -0,0 +1,33 @@
+// 
+// OciStatementType.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       internal enum OciStatementType {
+               Default = 0x00,
+               Select = 0x01,
+               Update = 0x02,
+               Delete = 0x03,
+               Insert = 0x04,
+               Create = 0x05,
+               Drop = 0x06,
+               Alter = 0x07,
+               Begin = 0x08,
+               Declare = 0x09
+       }
+}
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciTransactionFlags.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciTransactionFlags.cs
new file mode 100644 (file)
index 0000000..506a59b
--- /dev/null
@@ -0,0 +1,31 @@
+// 
+// OciTransactionFlags.cs 
+//  
+// Part of managed C#/.NET library System.Data.OracleClient.dll
+//
+// Part of the Mono class libraries at
+// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
+//
+// Assembly: System.Data.OracleClient.dll
+// Namespace: System.Data.OracleClient.Oci
+// 
+// Author: 
+//     Tim Coleman <tim@timcoleman.com>
+//         
+// Copyright (C) Tim Coleman, 2003
+// 
+
+using System;
+
+namespace System.Data.OracleClient.Oci {
+       [Flags]
+       internal enum OciTransactionFlags {
+               New = 0x01,
+               Resume = 0x04,
+               ReadOnly = 0x100,
+               ReadWrite = 0x200,
+               Serializable = 0x400,
+               Tight = 0x10000,
+               Loose = 0x20000
+       }
+}
index e022fc7be4b61a4037be191f327af3be28aa32d1..8eb230d60293df736979c38e2bcec3ede939e794 100755 (executable)
 // mcs/class/System.Data.OracleClient/System.Data.OracleClient.OCI
 //
 // Assembly: System.Data.OracleClient.dll
-// Namespace: System.Data.OracleClient
+// Namespace: System.Data.OracleClient.Oci
 // 
-// Author: 
+// Authors
 //     Daniel Morgan <danmorg@sc.rr.com>
+//     Tim Coleman <tim@timcoleman.com>
 //         
 // Copyright (C) Daniel Morgan, 2002
+// Copyright (C) Tim Coleman, 2002
 // 
 
 using System;
 using System.Runtime.InteropServices;
 
-namespace System.Data.OracleClient.OCI {
-       internal sealed class OciGlue {
+namespace System.Data.OracleClient.Oci {
+       internal sealed class OciGlue 
+       {
+               IntPtr environmentHandle;
+               IntPtr errorHandle;
+               IntPtr serverHandle;
+               IntPtr serviceHandle;
+               IntPtr sessionHandle;
 
                // TODO: need to clean up, dispose, close, etc...
+
                
                // connection parameters
                string database = "";
                string username = "";
                string password = "";
 
-               public const Int32 OCI_SUCCESS = 0;
-               public const Int32 OCI_SUCCESS_WITH_INFO = 1;
-               public const Int32 OCI_RESERVED_FOR_INT_USE = 200;
-               public const Int32 OCI_NO_DATA = 100;
-               public const Int32 OCI_ERROR = -1;
-               public const Int32 OCI_INVALID_HANDLE = -2;
-               public const Int32 OCI_NEED_DATA = 99;
-               public const Int32 OCI_STILL_EXECUTING = -3123;
-               public const Int32 OCI_CONTINUE = -24200;
+               // other codes
+               public const int OCI_DEFAULT = 0;
+               public const int OCI_SUCCESS = 0;
+               public const int OCI_SUCCESS_WITH_INFO = 1;
+               public const int OCI_RESERVED_FOR_INT_USE = 200;
+               public const int OCI_NO_DATA = 100;
+               public const int OCI_ERROR = -1;
+               public const int OCI_INVALID_HANDLE = -2;
+               public const int OCI_NEED_DATA = 99;
+               public const int OCI_STILL_EXECUTING = -3123;
+               public const int OCI_CONTINUE = -24200;
 
                private UInt32 ociGlueConnectionHandle = 0;
 
                // http://download-west.oracle.com/docs/cd/A87861_01/NT817EE/index.htm
                // from oracle/ora81/oci/include/oci.h
 
-               [DllImport ("ociglue")]
-               public static extern Int32 OciGlue_BeginTransaction (UInt32 connection_handle);
-
-               [DllImport ("ociglue")]
-               public static extern Int32 OciGlue_CommitTransaction (UInt32 connection_handle);
-
-               [DllImport ("ociglue")]
-               public static extern Int32 OciGlue_RollbackTransaction (UInt32 connection_handle);
-
-               [DllImport ("ociglue")]
-               public static extern IntPtr OciGlue_Connect (out Int32 status,
-                       out UInt32 ociGlueConnectionHandle, out uint errcode, 
-                       string database, string username, string password);
-
-               [DllImport ("ociglue")]
-               public static extern Int32 OciGlue_Disconnect (UInt32 connection_handle);
-
-               [DllImport ("ociglue")]
-               public static extern Int32 OciGlue_PrepareAndExecuteNonQuerySimple (
-                       UInt32 ociGlueConnectionHandle,
-                       string sqlstmt, out int found);
-
-               [DllImport ("ociglue")]
-               public static extern UInt32 OciGlue_ConnectionCount();
-
-               [DllImport ("ociglue")]
-               public static extern IntPtr OciGlue_CheckError (Int32 status, UInt32 connection_handle);
-
-               [DllImport ("ociglue")]
-               public static extern void OciGlue_Free (IntPtr obj);
-
-               public string CheckError (Int32 status) {
+               [DllImport ("oci", EntryPoint = "OCIAttrSet")]
+               public static extern int OCIAttrSet (IntPtr trgthndlp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType trghndltyp,
+                                                       IntPtr attributep,
+                                                       uint size,
+                                                       [MarshalAs (UnmanagedType.U4)] OciAttributeType attrtype,
+                                                       IntPtr errhp);
+
+               [DllImport ("oci", EntryPoint = "OCIAttrSet")]
+               public static extern int OCIAttrSetString (IntPtr trgthndlp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType trghndltyp,
+                                                       string attributep,
+                                                       uint size,
+                                                       [MarshalAs (UnmanagedType.U4)] OciAttributeType attrtype,
+                                                       IntPtr errhp);
+
+               [DllImport ("oci", EntryPoint = "OCIAttrGet")]
+               public static extern int OCIAttrGetInt32 (IntPtr trgthndlp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType trghndltyp,
+                                                       out int attributep,
+                                                       out int sizep,
+                                                       [MarshalAs (UnmanagedType.U4)] OciAttributeType attrtype,
+                                                       IntPtr errhp);
+
+               [DllImport ("oci")]
+               public static extern int OCIEnvCreate (out IntPtr envhpp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciEnvironmentMode mode,
+                                                       IntPtr ctxp,
+                                                       IntPtr malocfp,
+                                                       IntPtr ralocfp,
+                                                       IntPtr mfreefp,
+                                                       int xtramem_sz,
+                                                       IntPtr usrmempp);
+
+               [DllImport ("oci")]
+               public static extern int OCIErrorGet (IntPtr hndlp,
+                                                       uint recordno,
+                                                       out string sqlstate,
+                                                       out int errcodep,
+                                                       out string bufp,
+                                                       uint bufsize,
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType type);
+
+               [DllImport ("oci")]
+               public static extern int OCIHandleAlloc (IntPtr parenth, 
+                                                       out IntPtr hndlpp, 
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType type, 
+                                                       int xtramem_sz, 
+                                                       IntPtr usrmempp);
+
+               [DllImport ("oci")]
+               public static extern int OCIHandleFree (IntPtr hndlp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciHandleType type);
+               [DllImport ("oci")]
+               public static extern int OCIServerAttach (IntPtr srvhp, 
+                                                       IntPtr errhp, 
+                                                       string dblink, 
+                                                       int dblink_len, 
+                                                       uint mode);
+
+               [DllImport ("oci")]
+               public static extern int OCIServerDetach (IntPtr srvhp,
+                                                       IntPtr errhp,
+                                                       uint mode);
+
+               [DllImport ("oci")]
+               public static extern int OCISessionBegin (IntPtr svchp,
+                                                       IntPtr errhp,
+                                                       IntPtr usrhp,
+                                                       [MarshalAs (UnmanagedType.U4)] OciCredentialType credt,
+                                                       [MarshalAs (UnmanagedType.U4)] OciSessionMode mode);
+
+               [DllImport ("oci")]
+               public static extern int OCIStmtExecute (IntPtr svchp,
+                                                       IntPtr stmthp,
+                                                       IntPtr errhp,
+                                                       [MarshalAs (UnmanagedType.U4)] bool iters,
+                                                       uint rowoff,
+                                                       IntPtr snap_in,
+                                                       IntPtr snap_out,
+                                                       [MarshalAs (UnmanagedType.U4)] OciExecuteMode mode);
+
+               [DllImport ("oci")]
+               public static extern int OCIStmtPrepare (IntPtr stmthp,
+                                                       IntPtr errhp,
+                                                       string stmt,
+                                                       uint stmt_length,
+                                                       [MarshalAs (UnmanagedType.U4)] OciStatementLanguage language,
+                                                       [MarshalAs (UnmanagedType.U4)] OciStatementMode mode);
+
+               [DllImport ("oci")]
+               public static extern int OCITransStart (IntPtr svchp,
+                                                       IntPtr errhp,
+                                                       uint timeout,
+                                                       [MarshalAs (UnmanagedType.U4)] OciTransactionFlags flags);
+
+               public string CheckError (Int32 status) 
+               {
                        IntPtr intptrMsg = IntPtr.Zero;
                        string strMsg = "";
                        string msg = "";
-                       
+               /*      
                        intptrMsg = OciGlue_CheckError(status, ociGlueConnectionHandle);
                        if(intptrMsg != IntPtr.Zero)
                                strMsg = Marshal.PtrToStringAnsi(intptrMsg);
@@ -91,72 +168,312 @@ namespace System.Data.OracleClient.OCI {
                                        OciGlue_Free(intptrMsg);
                                }
 
+               */
                        return msg;
                }
 
-               public Int32 Connect(OracleConnectionInfo conInfo) {
-
+               public int Connect (OracleConnectionInfo conInfo) 
+               {
                        Int32 status = 0;
                        string error = "";
-                       uint errcode = 0;
+                       int errcode = 0;
                        string errmsg = "";
                        string strMsg = "";
-                       IntPtr ipErrMsg = IntPtr.Zero;
                        
-                       database = conInfo.Database;
-                       username = conInfo.Username;
-                       password = conInfo.Password;
-
-                       Console.WriteLine("OciGlue_Connect");
-                       ipErrMsg = OciGlue_Connect (out status,
-                               out ociGlueConnectionHandle, out errcode, 
-                               database, username, password);
-                       Console.WriteLine("  Handle: " + ociGlueConnectionHandle);
+                       status = OCIEnvCreate (out environmentHandle, 
+                                               OciEnvironmentMode.Default | OciEnvironmentMode.NoUserCallback,
+                                               IntPtr.Zero,
+                                               IntPtr.Zero,
+                                               IntPtr.Zero,
+                                               IntPtr.Zero,
+                                               0, 
+                                               IntPtr.Zero);
+                       if (status != 0) {
+                               Console.WriteLine ("ERR1 {0}", status);
+                               return status;
+                       }
 
-                       if(status != 0) {
-                               if(status == -1) {
-                                       if(ipErrMsg != IntPtr.Zero) {
-                                               strMsg = "";
-                                               strMsg = Marshal.PtrToStringAnsi(ipErrMsg);
-                                               if(strMsg != null) {
-                                                       errmsg = String.Copy(strMsg);
-                                                       OciGlue_Free(ipErrMsg);
-                                               }
-                                       }
-                                       error = "OCI Error - errcode: " + errcode.ToString() + " errmsg: " + errmsg;
-                                       
-                               }
-                               else
-                                       error = CheckStatus(status);
+                       // Allocate the service handle
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out serviceHandle,
+                                               OciHandleType.Service,
+                                               0,
+                                               IntPtr.Zero);
+
+                               
+                       if (status != 0) {
+                               Console.WriteLine ("ERR2 {0}", status);
+                               return status;
+                       }
+
+                       // Allocate the error handle
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out errorHandle,
+                                               OciHandleType.Error,
+                                               0,
+                                               IntPtr.Zero);
+                       if (status != 0) {
+                               Console.WriteLine ("ERR3");
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       // Allocate the server handle
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out serverHandle,
+                                               OciHandleType.Server,
+                                               0,
+                                               IntPtr.Zero);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR4");
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       // Allocate the session handle
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out sessionHandle,
+                                               OciHandleType.Session,
+                                               0,
+                                               IntPtr.Zero);
+
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR5");
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /* Attach to Oracle server */
+                       status = OCIServerAttach (serverHandle,
+                                               errorHandle,
+                                               conInfo.Database,
+                                               conInfo.Database.Length,
+                                               OCI_DEFAULT);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR6 {0}", status);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /*Set the server attribute in the service context */
+                       status = OCIAttrSet (serviceHandle,
+                                               OciHandleType.Service,
+                                               serverHandle,
+                                               0,
+                                               OciAttributeType.Server,
+                                               errorHandle);
+                                               
+                       if (status != 0) {
+                               Console.WriteLine ("ERR7 {0}", status);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /* Set the username attribute */
+                       status = OCIAttrSetString (sessionHandle,
+                                               OciHandleType.Session,
+                                               conInfo.Username,
+                                               (uint) conInfo.Username.Length,
+                                               OciAttributeType.Username,
+                                               errorHandle);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR8 {0}", status);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /* Set the password attribute */
+                       status = OCIAttrSetString (sessionHandle,
+                                               OciHandleType.Session,
+                                               conInfo.Password,
+                                               (uint) conInfo.Password.Length,
+                                               OciAttributeType.Password,
+                                               errorHandle);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR9 {0}", status);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /* Begin the session */
+                       status = OCISessionBegin (serviceHandle,
+                                               errorHandle,
+                                               sessionHandle,
+                                               OciCredentialType.RDBMS,
+                                               OciSessionMode.Default);
 
-                               throw new Exception("Error: Unable to connect: " + error);
-                       }               
+                       if (status != 0) {
+                               Console.WriteLine ("ERR10 {0}", status);
+                               OCIServerDetach (serverHandle, errorHandle, OCI_DEFAULT);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
+
+                       /* Set the session attribute in the service context */
+                       status = OCIAttrSet (serviceHandle, 
+                                               OciHandleType.Service,
+                                               sessionHandle,
+                                               0,
+                                               OciAttributeType.Session,
+                                               errorHandle);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR11 {0}", status);
+                               OCIServerDetach (serverHandle, errorHandle, OCI_DEFAULT);
+                               OCIHandleFree (sessionHandle, OciHandleType.Session);
+                               OCIHandleFree (serverHandle, OciHandleType.Server);
+                               OCIHandleFree (errorHandle, OciHandleType.Error);
+                               OCIHandleFree (serviceHandle, OciHandleType.Service);
+                               return status;
+                       }
                                                
                        return status;
                }
 
-               public Int32 BeginTransaction () 
+               public IntPtr PrepareStatement (string commandText)
                {
-                       Int32 status = 0;
-                       string msg = "";
+                       IntPtr statementHandle;
+                       int status;
 
-                       Console.WriteLine ("OciGlue_BeginTransaction");
-                       Console.WriteLine ("  Handle: " + ociGlueConnectionHandle);
-                       status = OciGlue.OciGlue_BeginTransaction (ociGlueConnectionHandle);
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out statementHandle,
+                                               OciHandleType.Statement,
+                                               0,
+                                               IntPtr.Zero);
 
                        if (status != 0) {
-                               msg = CheckStatus (status);
-                               throw new Exception (msg);
+                               Console.WriteLine ("ERR12 {0}", status);
+                               return IntPtr.Zero;
                        }
 
-                       return status;
+                       status = OCIStmtPrepare (statementHandle,
+                                               errorHandle,
+                                               commandText,
+                                               (uint) commandText.Length,
+                                               OciStatementLanguage.NTV,
+                                               OciStatementMode.Default);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR13 {0}", status);
+                               return IntPtr.Zero;
+                       }
+               
+                       return statementHandle;
+               }
+
+               public OciStatementType GetStatementType (IntPtr statementHandle)
+               {
+                       int status = 0;
+                       int statementType;
+                       int size;
+
+                       status = OCIAttrGetInt32 (statementHandle,
+                                               OciHandleType.Statement,
+                                               out statementType,
+                                               out size,
+                                               OciAttributeType.StatementType,
+                                               errorHandle);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR14 {0}", status);
+                               return OciStatementType.Default;
+                       }
+
+                       return (OciStatementType) statementType;
+               }
+
+               public bool ExecuteStatement (IntPtr statementHandle, OciStatementType statementType)
+               {
+                       int status = 0;
+                       status = OCIStmtExecute (serviceHandle,
+                                               statementHandle,
+                                               errorHandle,
+                                               statementType != OciStatementType.Select,
+                                               0,
+                                               IntPtr.Zero,
+                                               IntPtr.Zero,
+                                               OciExecuteMode.Default);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR15 {0}", status);
+                               return false;
+                       }
+
+                       return true;
+               }
+
+               public IntPtr BeginTransaction () 
+               {
+                       int status = 0;
+                       IntPtr transactionHandle;
+
+                       // Allocate the transaction handle
+                       status = OCIHandleAlloc (environmentHandle,
+                                               out transactionHandle,
+                                               OciHandleType.Transaction,
+                                               0,
+                                               IntPtr.Zero);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR16 {0}", status);
+                               return IntPtr.Zero;
+                       }
+
+
+                       // Attach the transaction to the service context 
+                       status = OCIAttrSet (serviceHandle,
+                                               OciHandleType.Service,
+                                               transactionHandle,
+                                               0,
+                                               OciAttributeType.Transaction,
+                                               errorHandle);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR17 {0}", status);
+                               return IntPtr.Zero;
+                       }
+
+                       status = OCITransStart (serviceHandle,
+                                               errorHandle,
+                                               60,
+                                               OciTransactionFlags.New);
+
+                       if (status != 0) {
+                               Console.WriteLine ("ERR18 {0}", status);
+                               return IntPtr.Zero;
+                       }
+
+                       return transactionHandle;
                }
 
                public Int32 CommitTransaction () 
                {
                        Int32 status = 0;
                        string msg = "";
-
+/*
                        Console.WriteLine ("OciGlue_CommitTransaction");
                        Console.WriteLine ("  Handle: " + ociGlueConnectionHandle);
                        status = OciGlue.OciGlue_CommitTransaction (ociGlueConnectionHandle);
@@ -165,6 +482,7 @@ namespace System.Data.OracleClient.OCI {
                                msg = CheckStatus (status);
                                throw new Exception (msg);
                        }
+                       */
 
                        return status;
                }
@@ -174,6 +492,7 @@ namespace System.Data.OracleClient.OCI {
                        Int32 status = 0;
                        string msg = "";
 
+                       /*
                        Console.WriteLine ("OciGlue_RollbackTransaction");
                        Console.WriteLine ("  Handle: " + ociGlueConnectionHandle);
                        status = OciGlue.OciGlue_RollbackTransaction (ociGlueConnectionHandle);
@@ -183,6 +502,8 @@ namespace System.Data.OracleClient.OCI {
                                throw new Exception (msg);
                        }
 
+                       */
+
                        return status;
                }
 
@@ -190,7 +511,8 @@ namespace System.Data.OracleClient.OCI {
 
                        Int32 status = 0;
                        string msg = "";
-                       
+               
+               /*
                        Console.WriteLine("OciGlue_Disconnect");
                        Console.WriteLine("  Handle: " + ociGlueConnectionHandle);
                        status = OciGlue.OciGlue_Disconnect (ociGlueConnectionHandle);
@@ -200,6 +522,7 @@ namespace System.Data.OracleClient.OCI {
                                msg = CheckStatus(status);
                                throw new Exception(msg);
                        }
+                       */
                                                
                        return status;
                }
@@ -211,6 +534,7 @@ namespace System.Data.OracleClient.OCI {
                        Int32 status = 0;
                        int found = 0;
 
+/*
                        Console.WriteLine("PrepareAndExecuteNonQuerySimple");
                        status = OciGlue_PrepareAndExecuteNonQuerySimple (
                                ociGlueConnectionHandle, sql, out found);
@@ -219,6 +543,7 @@ namespace System.Data.OracleClient.OCI {
                                " Found: " + found.ToString());
 
                        CheckStatus(status);
+                       */
                        return status;
                }
                
index 51bb8b8bb49a5112e877f27047d31d2e04c9c9c2..fa37db33500ab0cd5f9330c5677ecec4d162555f 100755 (executable)
@@ -20,7 +20,7 @@
 using System;
 using System.ComponentModel;
 using System.Data;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 
 namespace System.Data.OracleClient {
        public class OracleCommand : Component, ICloneable, IDbCommand
@@ -37,6 +37,9 @@ namespace System.Data.OracleClient {
                OracleTransaction transaction;
                UpdateRowSource updatedRowSource;
 
+               IntPtr statementHandle;
+               OciStatementType statementType;
+
                #endregion // Fields
 
                #region Constructors
@@ -166,7 +169,11 @@ namespace System.Data.OracleClient {
                        int rowsAffected = -1;
 
                        ValidateCommand ("ExecuteNonQuery");
+                       statementHandle = Connection.Oci.PrepareStatement (CommandText);
+                       statementType = Connection.Oci.GetStatementType (statementHandle);
+                       Connection.Oci.ExecuteStatement (statementHandle, statementType);
 
+                       /*
                        Int32 status;
                        status = connection.Oci.PrepareAndExecuteNonQuerySimple (commandText);
                        if(status != 0) {
@@ -178,6 +185,7 @@ namespace System.Data.OracleClient {
                                        statusText;
                                throw new Exception(msg);
                        }
+                       */
 
                        return rowsAffected;
                }
index 90df0ce19aa0aa9c918285f8f1539a29ff5147b6..214356d2976371a7d323737dcfa13eecbac677dd 100755 (executable)
@@ -27,7 +27,7 @@ using System.Collections;
 using System.Collections.Specialized;
 using System.ComponentModel;
 using System.Data;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 using System.Text;
 
 namespace System.Data.OracleClient 
@@ -73,7 +73,7 @@ namespace System.Data.OracleClient
                // only for DEBUG purposes - not part of MS.NET 1.1 OracleClient
                public static uint ConnectionCount {
                        get {
-                               uint count = OciGlue.OciGlue_ConnectionCount();
+                               uint count = 0; // OciGlue.OciGlue_ConnectionCount();
                                return count;
                        }
                }
@@ -122,7 +122,7 @@ namespace System.Data.OracleClient
 
                public OracleTransaction BeginTransaction (IsolationLevel il)
                {
-                       Int32 status;
+                       IntPtr transactionHandle;
 
                        if (state == ConnectionState.Closed)
                                throw new InvalidOperationException ("The connection is not open.");
@@ -130,14 +130,11 @@ namespace System.Data.OracleClient
                        if (transaction != null)
                                throw new InvalidOperationException ("OracleConnection does not support parallel transactions.");
 
-                       status = oci.BeginTransaction ();
-                       if(status != 0)
-                               throw new Exception("Error: Unable to connect: " + 
-                                       status.ToString() + 
-                                       ": " +
-                                       oci.CheckError(status));
+                       transactionHandle = oci.BeginTransaction ();
+                       if (transactionHandle == IntPtr.Zero)
+                               throw new Exception("Error: Unable to start transaction");
                        else
-                               transaction = new OracleTransaction (this, il);
+                               transaction = new OracleTransaction (this, il, transactionHandle);
 
                        return transaction;
                }
index ab75e745f6c6374695d5831d47c3540b7bf6d5a0..161c25bae5bb5436c04711c698d15d3e9d93d3b9 100644 (file)
@@ -19,7 +19,7 @@ using System.Collections;
 using System.ComponentModel;
 using System.Data;
 using System.Data.Common;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 
 namespace System.Data.OracleClient {
        public sealed class OracleDataReader : MarshalByRefObject, IDataReader, IDisposable, IDataRecord, IEnumerable
index 34ebca3ff19c09cb72894b091229c1ff552e8dda..adb28261bbbe84572f20bb92706c219fcc207c54 100644 (file)
@@ -19,7 +19,7 @@ using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 
 namespace System.Data.OracleClient {
        public sealed class OracleParameter : MarshalByRefObject, IDbDataParameter, IDataParameter, ICloneable
index cefe2babdf8649817b8c8814103491169b80ffb2..1817eb38082162d4dfc2ffbc95bd2069386fa11e 100644 (file)
@@ -19,7 +19,7 @@ using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Data;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 
 namespace System.Data.OracleClient {
        public class OracleParameterCollection : MarshalByRefObject, IDataParameterCollection, IList, ICollection, IEnumerable
index 0639dc68c591d6e14d0d36d335596a7791c06e19..a753bd8d54854431ea5e81e2d7f878e3e90c1693 100644 (file)
@@ -17,7 +17,7 @@
 using System;
 using System.ComponentModel;
 using System.Data;
-using System.Data.OracleClient.OCI;
+using System.Data.OracleClient.Oci;
 
 namespace System.Data.OracleClient {
        public sealed class OracleTransaction : MarshalByRefObject, IDbTransaction, IDisposable
@@ -33,7 +33,7 @@ namespace System.Data.OracleClient {
 
                #region Constructors
 
-               internal OracleTransaction (OracleConnection connection, IsolationLevel isolevel)
+               internal OracleTransaction (OracleConnection connection, IsolationLevel isolevel, IntPtr transactionHandle)
                {
                        this.connection = connection;
                        this.isolationLevel = isolevel;
index 2339182084d048f80b547af340e44d4850fa3ab8..1e8156a357658d0728a65f1bfa4bda4d4027feff 100755 (executable)
@@ -1,9 +1,22 @@
-System.Data.OracleClient/OciGlue.cs\r
-System.Data.OracleClient/OracleConnection.cs\r
-System.Data.OracleClient/OracleCommand.cs\r
-System.Data.OracleClient/OracleDataReader.cs\r
-System.Data.OracleClient/OracleParameter.cs\r
-System.Data.OracleClient/OracleParameterCollection.cs\r
-System.Data.OracleClient/OracleString.cs\r
-System.Data.OracleClient/OracleTransaction.cs\r
-System.Data.OracleClient/OracleType.cs\r
+System.Data.OracleClient/OciGlue.cs
+System.Data.OracleClient/OracleTransaction.cs
+System.Data.OracleClient/OracleCommand.cs
+System.Data.OracleClient/OracleConnection.cs
+System.Data.OracleClient/OracleDataReader.cs
+System.Data.OracleClient/OracleParameter.cs
+System.Data.OracleClient/OracleParameterCollection.cs
+System.Data.OracleClient/OracleType.cs
+System.Data.OracleClient/OracleString.cs
+System.Data.OracleClient.Oci/OciAttributeType.cs
+System.Data.OracleClient.Oci/OciCredentialType.cs
+System.Data.OracleClient.Oci/OciDescriptorType.cs
+System.Data.OracleClient.Oci/OciEnvironmentMode.cs
+System.Data.OracleClient.Oci/OciExecuteMode.cs
+System.Data.OracleClient.Oci/OciLobType.cs
+System.Data.OracleClient.Oci/OciHandleType.cs
+System.Data.OracleClient.Oci/OciPointerType.cs
+System.Data.OracleClient.Oci/OciSessionMode.cs
+System.Data.OracleClient.Oci/OciStatementLanguage.cs
+System.Data.OracleClient.Oci/OciStatementMode.cs
+System.Data.OracleClient.Oci/OciStatementType.cs
+System.Data.OracleClient.Oci/OciTransactionFlags.cs
index 6951f66023c7852002708319cd840d7ec95afcbb..f44978c59ec3aca75ba8693a39872a5f1cb98016 100755 (executable)
@@ -1,5 +1,6 @@
 topdir = ../..
 
+TEST_DIR= Test
 LIBRARY = $(topdir)/class/lib/System.Data.OracleClient.dll
 
 LIB_LIST = list