3 // Christian Hergert <chris@mosaix.net>
4 // Daniel Morgan <danielmorgan@verizon.net>
5 // Ben Motmans <ben.motmans@gmail.com>
7 // Copyright (C) 2005 Mosaix Communications, Inc.
8 // Copyright (C) 2005 Daniel Morgan
9 // Copyright (c) 2007 Ben Motmans
11 // Permission is hereby granted, free of charge, to any person obtaining a copy
12 // of this software and associated documentation files (the "Software"), to deal
13 // in the Software without restriction, including without limitation the rights
14 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 // copies of the Software, and to permit persons to whom the Software is
16 // furnished to do so, subject to the following conditions:
18 // The above copyright notice and this permission notice shall be included in
19 // all copies or substantial portions of the Software.
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
32 using FirebirdSql
.Data
.Firebird
;
33 using System
.Collections
.Generic
;
34
namespace MonoDevelop
.Database
.Sql
36 public class FirebirdConnectionProvider
: AbstractConnectionProvider
38 public FirebirdConnectionProvider (IDbFactory factory
, ConnectionSettings settings
)
39 : base (factory
, settings
)
43 public override DataSet
ExecuteQueryAsDataSet (string sql
)
45 if (String
.IsNullOrEmpty ("sql"))
46 throw new ArgumentException ("sql");
48 DataSet
set = new DataSet ();
49 using (IDbCommand command
= CreateCommand (sql
)) {
50 using (FbDataAdapter adapter
= new FbDataAdapter (command
as FbCommand
)) {
55 command
.Connection
.Close ();
62 public override DataTable
ExecuteQueryAsDataTable (string sql
)
64 if (String
.IsNullOrEmpty ("sql"))
65 throw new ArgumentException ("sql");
67 DataTable table
= new DataTable ();
68 using (IDbCommand command
= CreateCommand (sql
)) {
69 using (FbDataAdapter adapter
= new FbDataAdapter (command
as FbCommand
)) {
74 command
.Connection
.Close ();
81 public override IDbConnection
Open (out string errorMessage
)
83 FbConnectionStringBuilder builder
= null;
85 if (settings
.UseConnectionString
) {
86 builder
= new FbConnectionStringBuilder (settings
.ConnectionString
);
88 builder
= new FbConnectionStringBuilder ();
89 builder
.Database
= settings
.Database
;
90 builder
.UserID
= settings
.Username
;
91 builder
.Password
= settings
.Password
;
builder
.Port
= settings
.Port
;
92 builder
.DataSource
= settings
.Server
;
94 builder
.Pooling
= settings
.EnablePooling
;
95 builder
.MinPoolSize
= settings
.MinPoolSize
;
96 builder
.MaxPoolSize
= settings
.MaxPoolSize
;
97 connection
= new FbConnection (builder
.ToString ());
100 errorMessage
= String
.Empty
;
101 isConnectionError
= false;
104 isConnectionError
= true;
105 errorMessage
= String
.Format ("Unable to connect. (CS={0})", builder
== null ? "NULL" : builder
.ToString ());