[Cleanup] Removed JavaEE csproj and sln files
[mono.git] / mcs / class / System.Data / System.Data.OleDb.jvm / OleDbConnection.cs
index fcd11512b1761bb2ec18f6fc93f06013aa331e30..6c96afb556f610a19533c0523ff503ca03e5bbeb 100644 (file)
-//\r
-// System.Data.OleDb.OleDbConnection\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Collections;\r
-using System.Data.ProviderBase;\r
-using System.Globalization;\r
-\r
-using java.sql;\r
-\r
-using System.Configuration;\r
-using Mainsoft.Data.Configuration;\r
-using Mainsoft.Data.Jdbc.Providers;\r
-\r
-namespace System.Data.OleDb\r
-{\r
-       public sealed class OleDbConnection : AbstractDBConnection {\r
-\r
-               #region Events\r
-\r
-               public event OleDbInfoMessageEventHandler InfoMessage;\r
-\r
-               #endregion // Events\r
-               \r
-               #region Constructors\r
-\r
-               public OleDbConnection() : this(null) {\r
-               }\r
-\r
-               public OleDbConnection(String connectionString) : base(connectionString) {                      \r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public String Provider {\r
-                       get {\r
-                               IDictionary conDict = ConnectionStringBuilder;\r
-                               string provider = (string)conDict["Provider"];\r
-                               if (provider == null || provider.Length == 0)\r
-                                       throw ExceptionHelper.OleDbNoProviderSpecified();\r
-\r
-                               return provider;\r
-                       }\r
-               }\r
-\r
-               protected override IConnectionProvider GetConnectionProvider() {\r
-                       IDictionary conProviderDict = ConnectionStringDictionary.Parse(ConnectionString);\r
-                       string jdbcUrl = (string)conProviderDict["JdbcUrl"];\r
-                       if (jdbcUrl == null) {\r
-                               string provider = (string)conProviderDict["Provider"];\r
-                               if (provider != null)\r
-                                       return GetConnectionProvider("Mainsoft.Data.Configuration/OleDbProviders", provider);\r
-                       }\r
-\r
-                       return new GenericProvider (conProviderDict);\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               public new OleDbTransaction BeginTransaction(IsolationLevel level)\r
-               {\r
-                       return new OleDbTransaction(level, this);\r
-               }\r
-\r
-               public new OleDbTransaction BeginTransaction()\r
-               {\r
-                       return BeginTransaction(IsolationLevel.ReadCommitted);\r
-               }\r
-\r
-               public new OleDbCommand CreateCommand()\r
-               {\r
-                       return new OleDbCommand(this);\r
-               }\r
-\r
-               protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) {\r
-                       return BeginTransaction();\r
-               }\r
-\r
-               protected override DbCommand CreateDbCommand() {\r
-                       return CreateCommand();\r
-               }\r
-\r
-               protected sealed override SystemException CreateException(SQLException e)\r
-               {\r
-                       return new OleDbException(e,this);              \r
-               }\r
-\r
-               protected sealed override SystemException CreateException(string message)\r
-               {\r
-                       return new OleDbException(message, null, this); \r
-               }\r
-\r
-               [MonoTODO]\r
-               public DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions)\r
-               {\r
-                       if (State != ConnectionState.Open)\r
-                               throw ExceptionHelper.ConnectionNotOpened("GetOleDbSchemaTable", State.ToString());\r
-\r
-                       try {\r
-\r
-                               string[] fixedRestrictions = new string[4];\r
-                               if (restrictions != null) {\r
-                                       if (restrictions.Length > 4)\r
-                                               throw new OleDbException("The parameter is incorrect", null, this);\r
-\r
-                                       for (int i = 0, count = restrictions.Length; i < count; i ++) {\r
-                                               if (restrictions[i] != null) {\r
-                                                       if (!(restrictions[i] is string))\r
-                                                               throw new OleDbException("The parameter is incorrect", null, this);\r
-\r
-                                                       fixedRestrictions[i] = (string)restrictions[i];\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               DataTable schemaTable = new DataTable("Tables");\r
-                               schemaTable.Columns.Add("TABLE_CATALOG");\r
-                               schemaTable.Columns.Add("TABLE_SCHEMA");\r
-                               schemaTable.Columns.Add("TABLE_NAME");\r
-                               schemaTable.Columns.Add("TABLE_TYPE");\r
-                               schemaTable.Columns.Add("TABLE_GUID");\r
-                               schemaTable.Columns.Add("DESCRIPTION");\r
-                               schemaTable.Columns.Add("TABLE_PROPID");\r
-                               schemaTable.Columns.Add("DATE_CREATED");\r
-                               schemaTable.Columns.Add("DATE_MODIFIED");\r
-\r
-                               java.sql.ResultSet tableRes = JdbcConnection.getMetaData().getTables(\r
-                                       fixedRestrictions[0],\r
-                                       fixedRestrictions[1],\r
-                                       fixedRestrictions[2],\r
-                                       new string[]{fixedRestrictions[3]});\r
-\r
-                               try {\r
-                                       while(tableRes.next()) {\r
-                                               DataRow row = schemaTable.NewRow();\r
-                                               row["TABLE_CATALOG"] = tableRes.getString("TABLE_CAT");\r
-                                               row["TABLE_SCHEMA"] = tableRes.getString("TABLE_SCHEM");\r
-                                               row["TABLE_NAME"] = tableRes.getString("TABLE_NAME");\r
-                                               row["TABLE_TYPE"] = tableRes.getString("TABLE_TYPE");\r
-                                               row["DESCRIPTION"] = tableRes.getString("REMARKS");\r
-                \r
-                                               schemaTable.Rows.Add(row);\r
-                                       }\r
-                               }\r
-                               finally {\r
-                                       tableRes.close();\r
-                               }\r
-\r
-                               return schemaTable;\r
-                       }\r
-                       catch (SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               public static void ReleaseObjectPool()\r
-               {\r
-                       // since we're using connection pool from app servet, this is by design\r
-                       //throw new NotImplementedException();\r
-               }\r
-\r
-               protected internal sealed override void OnSqlWarning(SQLWarning warning)\r
-               {\r
-                       OleDbErrorCollection col = new OleDbErrorCollection(warning, this);\r
-                       OnOleDbInfoMessage(new OleDbInfoMessageEventArgs(col));\r
-               }\r
-\r
-               private void OnOleDbInfoMessage (OleDbInfoMessageEventArgs value)\r
-               {\r
-                       if (InfoMessage != null) {\r
-                               InfoMessage (this, value);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-\r
-       }\r
-}\r
+//
+// System.Data.OleDb.OleDbConnection
+//
+// Authors:
+//     Konstantin Triger <kostat@mainsoft.com>
+//     Boris Kirzner <borisk@mainsoft.com>
+//     
+// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+
+
+using System.Data;
+using System.Data.Common;
+using System.Collections;
+using System.Data.ProviderBase;
+using System.Globalization;
+
+using java.sql;
+
+using System.Configuration;
+using Mainsoft.Data.Configuration;
+using Mainsoft.Data.Jdbc.Providers;
+
+namespace System.Data.OleDb
+{
+       public sealed class OleDbConnection : AbstractDBConnection {
+
+               #region Events
+
+               public event OleDbInfoMessageEventHandler InfoMessage;
+
+               #endregion // Events
+               
+               #region Constructors
+
+               public OleDbConnection() : this(null) {
+               }
+
+               public OleDbConnection(String connectionString) : base(connectionString) {                      
+               }
+
+               #endregion // Constructors
+
+               #region Properties
+
+               public String Provider {
+                       get {
+                               IDictionary conDict = ConnectionStringBuilder;
+                               string provider = (string)conDict["Provider"];
+                               if (provider == null || provider.Length == 0)
+                                       throw ExceptionHelper.OleDbNoProviderSpecified();
+
+                               return provider;
+                       }
+               }
+
+               protected override IConnectionProvider GetConnectionProvider() {
+                       IDictionary conProviderDict = ConnectionStringDictionary.Parse(ConnectionString);
+                       string jdbcUrl = (string)conProviderDict["JdbcUrl"];
+                       if (jdbcUrl == null) {
+                               string provider = (string)conProviderDict["Provider"];
+                               if (provider != null)
+                                       return GetConnectionProvider("Mainsoft.Data.Configuration/OleDbProviders", provider);
+                       }
+
+                       return new GenericProvider (conProviderDict);
+               }
+
+               #endregion // Properties
+
+               #region Methods
+
+               public new OleDbTransaction BeginTransaction(IsolationLevel level)
+               {
+                       return new OleDbTransaction(level, this);
+               }
+
+               public new OleDbTransaction BeginTransaction()
+               {
+                       return BeginTransaction(IsolationLevel.ReadCommitted);
+               }
+
+               public new OleDbCommand CreateCommand()
+               {
+                       return new OleDbCommand(this);
+               }
+
+               protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) {
+                       return BeginTransaction();
+               }
+
+               protected override DbCommand CreateDbCommand() {
+                       return CreateCommand();
+               }
+
+               protected sealed override SystemException CreateException(SQLException e)
+               {
+                       return new OleDbException(e,this);              
+               }
+
+               protected sealed override SystemException CreateException(string message)
+               {
+                       return new OleDbException(message, null, this); 
+               }
+
+               [MonoTODO]
+               public DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions)
+               {
+                       if (State != ConnectionState.Open)
+                               throw ExceptionHelper.ConnectionNotOpened("GetOleDbSchemaTable", State.ToString());
+
+                       try {
+
+                               string[] fixedRestrictions = new string[4];
+                               if (restrictions != null) {
+                                       if (restrictions.Length > 4)
+                                               throw new OleDbException("The parameter is incorrect", null, this);
+
+                                       for (int i = 0, count = restrictions.Length; i < count; i ++) {
+                                               if (restrictions[i] != null) {
+                                                       if (!(restrictions[i] is string))
+                                                               throw new OleDbException("The parameter is incorrect", null, this);
+
+                                                       fixedRestrictions[i] = (string)restrictions[i];
+                                               }
+                                       }
+                               }
+
+                               DataTable schemaTable = new DataTable("Tables");
+                               schemaTable.Columns.Add("TABLE_CATALOG");
+                               schemaTable.Columns.Add("TABLE_SCHEMA");
+                               schemaTable.Columns.Add("TABLE_NAME");
+                               schemaTable.Columns.Add("TABLE_TYPE");
+                               schemaTable.Columns.Add("TABLE_GUID");
+                               schemaTable.Columns.Add("DESCRIPTION");
+                               schemaTable.Columns.Add("TABLE_PROPID");
+                               schemaTable.Columns.Add("DATE_CREATED");
+                               schemaTable.Columns.Add("DATE_MODIFIED");
+
+                               java.sql.ResultSet tableRes = JdbcConnection.getMetaData().getTables(
+                                       fixedRestrictions[0],
+                                       fixedRestrictions[1],
+                                       fixedRestrictions[2],
+                                       new string[]{fixedRestrictions[3]});
+
+                               try {
+                                       while(tableRes.next()) {
+                                               DataRow row = schemaTable.NewRow();
+                                               row["TABLE_CATALOG"] = tableRes.getString("TABLE_CAT");
+                                               row["TABLE_SCHEMA"] = tableRes.getString("TABLE_SCHEM");
+                                               row["TABLE_NAME"] = tableRes.getString("TABLE_NAME");
+                                               row["TABLE_TYPE"] = tableRes.getString("TABLE_TYPE");
+                                               row["DESCRIPTION"] = tableRes.getString("REMARKS");
+                
+                                               schemaTable.Rows.Add(row);
+                                       }
+                               }
+                               finally {
+                                       tableRes.close();
+                               }
+
+                               return schemaTable;
+                       }
+                       catch (SQLException e) {
+                               throw CreateException(e);
+                       }
+               }
+
+               public static void ReleaseObjectPool()
+               {
+                       // since we're using connection pool from app servet, this is by design
+                       //throw new NotImplementedException();
+               }
+
+#if NET_2_0
+               [MonoLimitation ("Empty implementation since State relies on java.sql.Connection.State always returning the correct state")]
+               public void ResetState () 
+               {
+               }
+
+#endif
+
+               protected internal sealed override void OnSqlWarning(SQLWarning warning)
+               {
+                       OleDbErrorCollection col = new OleDbErrorCollection(warning, this);
+                       OnOleDbInfoMessage(new OleDbInfoMessageEventArgs(col));
+               }
+
+               private void OnOleDbInfoMessage (OleDbInfoMessageEventArgs value)
+               {
+                       if (InfoMessage != null) {
+                               InfoMessage (this, value);
+                       }
+               }
+
+               #endregion // Methods
+
+       }
+}