private string GetDefaultDatabase(OleDbConnection cn, dbDriver driver) { string databaseName = string.Empty; switch (driver) { //case dbDriver.Access: // int i = cn.DataSource.LastIndexOf(@"\"); // if(i == -1) // databaseName = cn.DataSource; // else // databaseName = cn.DataSource.Substring(++i); // break; default: databaseName = cn.Database; break; } return(databaseName); }
private void OpenDataLinkDialog(string connection, dbDriver driver, string caption) { DataLinksClass dl = new MSDASC.DataLinksClass(); ADODB.Connection conn = new ADODB.ConnectionClass(); conn.ConnectionString = connection; object objCn = (object)conn; // dl.PromptNew(); if (dl.PromptEdit(ref objCn)) { this.Text = "MyMeta Browser " + caption; string error = ""; try { myMeta = new dbRoot(); myMeta.Connect(driver, conn.ConnectionString); } catch (Exception ex) { error = ex.Message; } this.InitializeTree(myMeta, error); } }
private void ConnectUsingOleDb(dbDriver driver, string connectionString) { var cn = new OleDbConnection(connectionString.Replace("\"", "")); cn.Open(); _defaultDatabase = GetDefaultDatabase(cn, driver); cn.Close(); }
private void ConnectUsingOleDb(dbDriver driver, string connectionString) { try { OleDbConnection cn = new OleDbConnection(connectionString.Replace("\"", "")); cn.Open(); this._defaultDatabase = GetDefaultDatabase(cn, driver); cn.Close(); } catch (OleDbException Ex) { throw Ex; } }
private static string GetDefaultDatabase(DbConnection cn, dbDriver driver) { string databaseName; switch (driver) { case dbDriver.Access: int i = cn.DataSource.LastIndexOf(@"\"); databaseName = i == -1 ? cn.DataSource : cn.DataSource.Substring(++i); break; default: databaseName = cn.Database; break; } return(databaseName); }
private void Reset() { UserData = null; IgnoreCase = true; requiredDatabaseName = false; requiresSchemaName = false; StripTrailingNulls = false; TrailingNull = ((char)0x0).ToString(); ClassFactory = null; _showSystemData = false; _driver = dbDriver.None; _driverString = "NONE"; _databases = null; _connectionString = ""; _theConnection = new OleDbConnection(); _isConnected = false; _parsedConnectionString = null; _defaultDatabase = ""; // Language _languageMappingFileName = string.Empty; _language = string.Empty; _languageDoc = null; LanguageNode = null; UserData = new XmlDocument(); UserData.AppendChild(UserData.CreateNode(XmlNodeType.Element, "MyMeta", null)); // DbTarget _dbTargetMappingFileName = string.Empty; _dbTarget = string.Empty; _dbTargetDoc = null; DbTargetNode = null; }
private string GetDefaultDatabase(OleDbConnection cn, dbDriver driver) { string databaseName = string.Empty; switch(driver) { case dbDriver.Access: int i = cn.DataSource.LastIndexOf(@"\"); if(i == -1) databaseName = cn.DataSource; else databaseName = cn.DataSource.Substring(++i); break; default: databaseName = cn.Database; break; } return databaseName; }
private void ConnectUsingOleDb(dbDriver driver, string connectionString) { OleDbConnection cn = new OleDbConnection(connectionString.Replace("\"", "")); cn.Open(); this._defaultDatabase = GetDefaultDatabase(cn, driver); cn.Close(); }
/// <summary> /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration. /// </summary> /// <param name="driver">The driver enumeration for you DBMS system</param> /// <param name="pluginName">The name of the plugin</param> /// <param name="connectionString">A valid connection string for you DBMS</param> /// <returns></returns> public bool Connect(dbDriver driver, string pluginName, string connectionString) { Reset(); try { string dbName; int index; this._connectionString = connectionString.Replace("\"", ""); this._driver = driver; switch (_driver) { case dbDriver.SQL: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.SQL; this.StripTrailingNulls = false; this.requiredDatabaseName = true; ClassFactory = new MyMeta.Sql.ClassFactory(); break; case dbDriver.Oracle: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.Oracle; this.StripTrailingNulls = false; this.requiredDatabaseName = true; ClassFactory = new MyMeta.Oracle.ClassFactory(); break; case dbDriver.Access: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.Access; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.Access.ClassFactory(); break; case dbDriver.MySql: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.MySql; this.StripTrailingNulls = true; this.requiredDatabaseName = true; ClassFactory = new MyMeta.MySql.ClassFactory(); break; case dbDriver.MySql2: using (MySqlConnection mysqlconn = new MySqlConnection(_connectionString)) { mysqlconn.Close(); mysqlconn.Open(); this._defaultDatabase = mysqlconn.Database; } this._driverString = MyMetaDrivers.MySql2; this.StripTrailingNulls = true; this.requiredDatabaseName = true; ClassFactory = new MyMeta.MySql5.ClassFactory(); break; case dbDriver.DB2: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.DB2; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.DB2.ClassFactory(); break; case dbDriver.ISeries: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.ISeries; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.ISeries.ClassFactory(); break; case dbDriver.Pervasive: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.Pervasive; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.Pervasive.ClassFactory(); break; case dbDriver.PostgreSQL: using (NpgsqlConnection cn = new Npgsql.NpgsqlConnection(_connectionString)) { cn.Open(); this._defaultDatabase = cn.Database; } this._driverString = MyMetaDrivers.PostgreSQL; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.PostgreSQL.ClassFactory(); break; case dbDriver.PostgreSQL8: using (NpgsqlConnection cn8 = new Npgsql.NpgsqlConnection(_connectionString)) { cn8.Open(); this._defaultDatabase = cn8.Database; } this._driverString = MyMetaDrivers.PostgreSQL8; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.PostgreSQL8.ClassFactory(); break; case dbDriver.Firebird: using (FbConnection cn1 = new FirebirdSql.Data.FirebirdClient.FbConnection(_connectionString)) { cn1.Open(); dbName = cn1.Database; } try { index = dbName.LastIndexOfAny(new char[] { '\\' }); if (index >= 0) { this._defaultDatabase = dbName.Substring(index + 1); } } catch { } this._driverString = MyMetaDrivers.Firebird; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.Firebird.ClassFactory(); break; case dbDriver.Interbase: using (FbConnection cn2 = new FirebirdSql.Data.FirebirdClient.FbConnection(_connectionString)) { cn2.Open(); this._defaultDatabase = cn2.Database; } this._driverString = MyMetaDrivers.Interbase; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.Firebird.ClassFactory(); break; case dbDriver.SQLite: using (SQLiteConnection sqliteConn = new SQLiteConnection(_connectionString)) { sqliteConn.Open(); dbName = sqliteConn.Database; if (!string.IsNullOrEmpty(dbName)) this._defaultDatabase = dbName; } this._driverString = MyMetaDrivers.SQLite; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.SQLite.ClassFactory(); break; #if !IGNORE_VISTA case dbDriver.VistaDB: try { MyMeta.VistaDB.MetaHelper mh = new MyMeta.VistaDB.MetaHelper(); dbName = mh.LoadDatabases(_connectionString); if (dbName == "") return false; this._defaultDatabase = dbName; this._driverString = MyMetaDrivers.VistaDB; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.VistaDB.ClassFactory(); } catch { throw new Exception("Invalid VistaDB connection or VistaDB not installed"); } break; #endif case dbDriver.Advantage: ConnectUsingOleDb(_driver, _connectionString); this._driverString = MyMetaDrivers.Advantage; this.StripTrailingNulls = false; this.requiredDatabaseName = false; ClassFactory = new MyMeta.Advantage.ClassFactory(); string[] s = this._defaultDatabase.Split('.'); this._defaultDatabase = s[0]; break; case dbDriver.Plugin: IMyMetaPlugin plugin; using (IDbConnection connection = this.GetConnectionFromPlugin(pluginName, _connectionString, out plugin)) { if (connection != null) connection.Open(); dbName = connection.Database; if (!string.IsNullOrEmpty(plugin.DefaultDatabase) || string.IsNullOrEmpty(dbName)) dbName = plugin.DefaultDatabase; if (!string.IsNullOrEmpty(dbName)) this._defaultDatabase = dbName; } this._driverString = pluginName; //this.StripTrailingNulls = plugin.StripTrailingNulls; //this.requiredDatabaseName = plugin.RequiredDatabaseName; ClassFactory = new MyMeta.Plugin.ClassFactory(plugin); break; case dbDriver.None: this._driverString = MyMetaDrivers.None; break; } } catch (OleDbException ex) { this._lastConnectionException = ex; foreach (OleDbError error in ex.Errors) { if (this._lastConnectionError != string.Empty) this._lastConnectionError += Environment.NewLine; this._lastConnectionError += ex; } } catch (Exception ex) { this._lastConnectionException = ex; this._lastConnectionError = ex.Message; } _isConnected = true; return true; }
/// <summary> /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration. /// </summary> /// <param name="driver">The driver enumeration for you DBMS system</param> /// <param name="connectionString">A valid connection string for you DBMS</param> /// <returns></returns> public bool Connect(dbDriver driver, string connectionString) { return Connect(driver, string.Empty, connectionString); }
private void Reset() { UserData = null; IgnoreCase = true; requiredDatabaseName = false; requiresSchemaName = false; StripTrailingNulls = false; TrailingNull = ((char) 0x0).ToString(); ClassFactory = null; _showSystemData = false; _driver = dbDriver.None; _driverString = "NONE"; _databases = null; _connectionString = ""; _theConnection = new OleDbConnection(); _isConnected = false; _parsedConnectionString = null; _defaultDatabase = ""; // Language _languageMappingFileName = string.Empty; _language = string.Empty; _languageDoc = null; LanguageNode = null; UserData = new XmlDocument(); UserData.AppendChild(UserData.CreateNode(XmlNodeType.Element, "MyMeta", null)); // DbTarget _dbTargetMappingFileName = string.Empty; _dbTarget = string.Empty; _dbTargetDoc = null; DbTargetNode = null; }
public bool Connect(dbDriver driver, string pluginName, string connectionString) { Reset(); string dbName; int index; this._connectionString = connectionString.Replace("\"", ""); this._driver = driver; switch (_driver) { case dbDriver.SQL: ConnectUsingOleDb(_driver, _connectionString); this._driverString = esMetaDrivers.SQL; this.StripTrailingNulls = false; this.requiredDatabaseName = true; ClassFactory = new Sql.ClassFactory(); break; case dbDriver.Oracle: ConnectUsingOleDb(_driver, _connectionString); this._driverString = esMetaDrivers.Oracle; this.StripTrailingNulls = false; this.requiredDatabaseName = true; ClassFactory = new Oracle.ClassFactory(); break; //case dbDriver.Access: // ConnectUsingOleDb(_driver, _connectionString); // this._driverString = esMetaDrivers.Access; // this.StripTrailingNulls = false; // this.requiredDatabaseName = false; // ClassFactory = new Access.ClassFactory(); // break; case dbDriver.MySql: this.ConnectToMySql(); break; case dbDriver.PostgreSQL: this.ConnectToPostgreSql(); break; case dbDriver.Plugin: IPlugin plugin; using (IDbConnection connection = this.GetConnectionFromPlugin(pluginName, _connectionString, out plugin)) { if (connection != null && connection.State != ConnectionState.Open) { connection.Open(); } dbName = connection.Database; } this._driverString = pluginName; this.StripTrailingNulls = plugin.StripTrailingNulls; this.requiredDatabaseName = plugin.RequiredDatabaseName; ClassFactory = new Plugin.ClassFactory(plugin); break; case dbDriver.None: this._driverString = esMetaDrivers.None; break; } _isConnected = true; return(true); }
public bool Connect(dbDriver driver, string connectionString) { return(Connect(driver, string.Empty, connectionString)); }
private void OpenDataLinkDialog(string connection, dbDriver driver, string caption) { DataLinksClass dl = new MSDASC.DataLinksClass(); ADODB.Connection conn = new ADODB.ConnectionClass(); conn.ConnectionString = connection; object objCn = (object) conn; // dl.PromptNew(); if(dl.PromptEdit(ref objCn)) { this.Text = "MyMeta Browser " + caption; string error = ""; try { myMeta = new dbRoot(); myMeta.Connect(driver, conn.ConnectionString); } catch(Exception ex) { error = ex.Message; } this.InitializeTree(myMeta, error); } }
/// <summary> /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration. /// </summary> /// <param name="driver">The driver enumeration for you DBMS system</param> /// <param name="pluginName">The name of the plugin</param> /// <param name="connectionString">A valid connection string for you DBMS</param> /// <returns></returns> public bool Connect(dbDriver driver, string pluginName, string connectionString) { Reset(); string dbName; int index; _connectionString = connectionString.Replace("\"", ""); _driver = driver; #region not fully implemented yet /* * InternalDriver drv = InternalDriver.Get(settings.DbDriver); * if (drv != null) * { * this._driverString = drv.DriverId; * this.StripTrailingNulls = drv.StripTrailingNulls; * this.requiredDatabaseName = drv.RequiredDatabaseName; * * IDbConnection con = null; * try * { * ClassFactory = drv.CreateBuildInClass(); * if (ClassFactory != null) * con = ClassFactory.CreateConnection(); * else * { * IMyMetaPlugin plugin = drv.CreateMyMetaPluginClass(); * if (plugin != null) * { * MyMetaPluginContext pluginContext = new MyMetaPluginContext(drv.DriverId, this._connectionString); * plugin.Initialize(pluginContext); * con = plugin.NewConnection; * } * } * if (con != null) * { * con.ConnectionString = this._connectionString; * // cn.Open(); * } * this._defaultDatabase = drv.GetDataBaseName(cn); * } * catch(Exception Ex) * { * throw Ex; * } finally { * if (con != null) * cn.Close(); * } * } * else * { * // Error * } */ #endregion not fully implemented yet switch (_driver) { case dbDriver.SQL: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.SQL; StripTrailingNulls = false; requiredDatabaseName = true; ClassFactory = new ClassFactory(); break; case dbDriver.Oracle: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Oracle; StripTrailingNulls = false; requiredDatabaseName = true; ClassFactory = new Oracle.ClassFactory(); break; case dbDriver.Access: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Access; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Access.ClassFactory(); break; case dbDriver.MySql: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.MySql; StripTrailingNulls = true; requiredDatabaseName = true; ClassFactory = new MySql.ClassFactory(); break; case dbDriver.MySql2: using (var mysqlconn = new MySqlConnection(_connectionString)) { mysqlconn.Close(); mysqlconn.Open(); _defaultDatabase = mysqlconn.Database; } _driverString = MyMetaDrivers.MySql2; StripTrailingNulls = true; requiredDatabaseName = true; ClassFactory = new MySql5.ClassFactory(); break; case dbDriver.DB2: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.DB2; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new DB2.ClassFactory(); break; case dbDriver.ISeries: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.ISeries; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new ISeries.ClassFactory(); break; case dbDriver.Pervasive: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Pervasive; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Pervasive.ClassFactory(); break; case dbDriver.PostgreSQL: using (var cn = new NpgsqlConnection(_connectionString)) { cn.Open(); _defaultDatabase = cn.Database; } _driverString = MyMetaDrivers.PostgreSQL; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new PostgreSQL.ClassFactory(); break; case dbDriver.PostgreSQL8: using (var cn8 = new NpgsqlConnection(_connectionString)) { cn8.Open(); _defaultDatabase = cn8.Database; } _driverString = MyMetaDrivers.PostgreSQL8; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new PostgreSQL8.ClassFactory(); break; case dbDriver.Firebird: using (var cn1 = new FbConnection(_connectionString)) { cn1.Open(); dbName = cn1.Database; } try { index = dbName.LastIndexOfAny(new[] { '\\' }); if (index >= 0) { _defaultDatabase = dbName.Substring(index + 1); } } catch {} _driverString = MyMetaDrivers.Firebird; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Firebird.ClassFactory(); break; case dbDriver.Interbase: using (var cn2 = new FbConnection(_connectionString)) { cn2.Open(); _defaultDatabase = cn2.Database; } _driverString = MyMetaDrivers.Interbase; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Firebird.ClassFactory(); break; case dbDriver.SQLite: using (var sqliteConn = new SQLiteConnection(_connectionString)) { sqliteConn.Open(); dbName = sqliteConn.Database; } _driverString = MyMetaDrivers.SQLite; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new SQLite.ClassFactory(); break; #if !IGNORE_VISTA case dbDriver.VistaDB: try { var mh = new MetaHelper(); dbName = mh.LoadDatabases(_connectionString); if (dbName == "") { return(false); } _defaultDatabase = dbName; _driverString = MyMetaDrivers.VistaDB; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new VistaDB.ClassFactory(); } catch { throw new Exception("Invalid VistaDB connection or VistaDB not installed"); } break; #endif case dbDriver.Advantage: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Advantage; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Advantage.ClassFactory(); string[] s = _defaultDatabase.Split('.'); _defaultDatabase = s[0]; break; case dbDriver.Plugin: break; case dbDriver.None: _driverString = MyMetaDrivers.None; break; } _isConnected = true; return(true); }
private static string GetDefaultDatabase(DbConnection cn, dbDriver driver) { string databaseName; switch (driver) { case dbDriver.Access: int i = cn.DataSource.LastIndexOf(@"\"); databaseName = i == -1 ? cn.DataSource : cn.DataSource.Substring(++i); break; default: databaseName = cn.Database; break; } return databaseName; }
/// <summary> /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration. /// </summary> /// <param name="driver">The driver enumeration for you DBMS system</param> /// <param name="pluginName">The name of the plugin</param> /// <param name="connectionString">A valid connection string for you DBMS</param> /// <returns></returns> public bool Connect(dbDriver driver, string pluginName, string connectionString) { Reset(); string dbName; int index; _connectionString = connectionString.Replace("\"", ""); _driver = driver; #region not fully implemented yet /* InternalDriver drv = InternalDriver.Get(settings.DbDriver); if (drv != null) { this._driverString = drv.DriverId; this.StripTrailingNulls = drv.StripTrailingNulls; this.requiredDatabaseName = drv.RequiredDatabaseName; IDbConnection con = null; try { ClassFactory = drv.CreateBuildInClass(); if (ClassFactory != null) con = ClassFactory.CreateConnection(); else { IMyMetaPlugin plugin = drv.CreateMyMetaPluginClass(); if (plugin != null) { MyMetaPluginContext pluginContext = new MyMetaPluginContext(drv.DriverId, this._connectionString); plugin.Initialize(pluginContext); con = plugin.NewConnection; } } if (con != null) { con.ConnectionString = this._connectionString; // cn.Open(); } this._defaultDatabase = drv.GetDataBaseName(cn); } catch(Exception Ex) { throw Ex; } finally { if (con != null) cn.Close(); } } else { // Error } */ #endregion not fully implemented yet switch (_driver) { case dbDriver.SQL: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.SQL; StripTrailingNulls = false; requiredDatabaseName = true; ClassFactory = new ClassFactory(); break; case dbDriver.Oracle: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Oracle; StripTrailingNulls = false; requiredDatabaseName = true; ClassFactory = new Oracle.ClassFactory(); break; case dbDriver.Access: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Access; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Access.ClassFactory(); break; case dbDriver.MySql: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.MySql; StripTrailingNulls = true; requiredDatabaseName = true; ClassFactory = new MySql.ClassFactory(); break; case dbDriver.MySql2: using (var mysqlconn = new MySqlConnection(_connectionString)) { mysqlconn.Close(); mysqlconn.Open(); _defaultDatabase = mysqlconn.Database; } _driverString = MyMetaDrivers.MySql2; StripTrailingNulls = true; requiredDatabaseName = true; ClassFactory = new MySql5.ClassFactory(); break; case dbDriver.DB2: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.DB2; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new DB2.ClassFactory(); break; case dbDriver.ISeries: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.ISeries; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new ISeries.ClassFactory(); break; case dbDriver.Pervasive: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Pervasive; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Pervasive.ClassFactory(); break; case dbDriver.PostgreSQL: using (var cn = new NpgsqlConnection(_connectionString)) { cn.Open(); _defaultDatabase = cn.Database; } _driverString = MyMetaDrivers.PostgreSQL; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new PostgreSQL.ClassFactory(); break; case dbDriver.PostgreSQL8: using (var cn8 = new NpgsqlConnection(_connectionString)) { cn8.Open(); _defaultDatabase = cn8.Database; } _driverString = MyMetaDrivers.PostgreSQL8; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new PostgreSQL8.ClassFactory(); break; case dbDriver.Firebird: using (var cn1 = new FbConnection(_connectionString)) { cn1.Open(); dbName = cn1.Database; } try { index = dbName.LastIndexOfAny(new[] {'\\'}); if (index >= 0) { _defaultDatabase = dbName.Substring(index + 1); } } catch {} _driverString = MyMetaDrivers.Firebird; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Firebird.ClassFactory(); break; case dbDriver.Interbase: using (var cn2 = new FbConnection(_connectionString)) { cn2.Open(); _defaultDatabase = cn2.Database; } _driverString = MyMetaDrivers.Interbase; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Firebird.ClassFactory(); break; case dbDriver.SQLite: using (var sqliteConn = new SQLiteConnection(_connectionString)) { sqliteConn.Open(); dbName = sqliteConn.Database; } _driverString = MyMetaDrivers.SQLite; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new SQLite.ClassFactory(); break; #if !IGNORE_VISTA case dbDriver.VistaDB: try { var mh = new MetaHelper(); dbName = mh.LoadDatabases(_connectionString); if (dbName == "") return false; _defaultDatabase = dbName; _driverString = MyMetaDrivers.VistaDB; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new VistaDB.ClassFactory(); } catch { throw new Exception("Invalid VistaDB connection or VistaDB not installed"); } break; #endif case dbDriver.Advantage: ConnectUsingOleDb(_driver, _connectionString); _driverString = MyMetaDrivers.Advantage; StripTrailingNulls = false; requiredDatabaseName = false; ClassFactory = new Advantage.ClassFactory(); string[] s = _defaultDatabase.Split('.'); _defaultDatabase = s[0]; break; case dbDriver.Plugin: break; case dbDriver.None: _driverString = MyMetaDrivers.None; break; } _isConnected = true; return true; }