2 // System.Data.OleDb.OleDbConnection
5 // Konstantin Triger <kostat@mainsoft.com>
6 // Boris Kirzner <borisk@mainsoft.com>
8 // (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 using System
.Collections
;
35 using Mainsoft
.Data
.Configuration
;
37 namespace Mainsoft
.Data
.Jdbc
.Providers
{
38 public class OleDbDB2Provider
: GenericProvider
{
41 private const string Port
= "port";
42 private const string Hostname
= "hostname";
43 private const string Location
= "location";
53 public OleDbDB2Provider (IDictionary providerInfo
) : base (providerInfo
) {
56 #endregion // Constructors
60 #endregion // Properties
64 public override IConnectionStringDictionary
GetConnectionStringBuilder (string connectionString
) {
65 IConnectionStringDictionary connectionStringBuilder
= base.GetConnectionStringBuilder (connectionString
);
67 string hostname
= (string)connectionStringBuilder
[Hostname
];
69 if (hostname
== null || hostname
.Length
== 0) {
70 string location
= (string)connectionStringBuilder
[Location
];
71 if (location
!= null) {
72 int semicolumnIndex
= location
.IndexOf(':');
73 if (semicolumnIndex
!= -1) {
74 hostname
= location
.Substring(0,semicolumnIndex
);
75 port
= location
.Substring(semicolumnIndex
+ 1);
81 connectionStringBuilder
.Add(Hostname
, hostname
);
84 connectionStringBuilder
[Port
] = port
;
88 port
= (string) connectionStringBuilder
[Port
];
89 if (port
== null || port
.Length
== 0) {
90 port
= (string) ProviderInfo
[Port
];
91 connectionStringBuilder
.Add (Port
, port
);
94 return connectionStringBuilder
;