提交 f3f3ddfc 编写于 作者: I Ivan Masmitjà 提交者: Adam Schroder

Add Firebird database type

上级 ee2384f4
......@@ -23,6 +23,7 @@ public abstract class DatabaseType
public static DatabaseType MySQL { get { return Singleton<MySqlDatabaseType>.Instance; } }
public static DatabaseType SQLite { get { return Singleton<SQLiteDatabaseType>.Instance; } }
public static DatabaseType SQLCe { get { return Singleton<SqlServerCEDatabaseType>.Instance; } }
public static DatabaseType Firebird { get { return Singleton<FirebirdDatabaseType>.Instance; } }
readonly Dictionary<Type, DbType> typeMap;
......@@ -246,6 +247,8 @@ public static DatabaseType Resolve(string typeName, string providerName)
return Singleton<SQLiteDatabaseType>.Instance;
if (typeName.StartsWith("SqlConnection"))
return Singleton<SqlServerDatabaseType>.Instance;
if (typeName.StartsWith("Firebird"))
return Singleton<FirebirdDatabaseType>.Instance;
if (!string.IsNullOrEmpty(providerName))
{
......@@ -262,6 +265,8 @@ public static DatabaseType Resolve(string typeName, string providerName)
return Singleton<OracleManagedDatabaseType>.Instance;
if (providerName.IndexOf("SQLite", StringComparison.InvariantCultureIgnoreCase) >= 0)
return Singleton<SQLiteDatabaseType>.Instance;
if (providerName.IndexOf("Firebird", StringComparison.InvariantCultureIgnoreCase) >= 0)
return Singleton<FirebirdDatabaseType>.Instance;
}
// Assume SQL Server
......
namespace NPoco.DatabaseTypes
{
public class FirebirdDatabaseType : DatabaseType
{
public override string GetParameterPrefix(string connectionString)
{
return "@";
}
public override string EscapeSqlIdentifier(string str)
{
return string.Format("\"{0}\"", str);
}
/*
public override string GetExistsSql()
{
return "SELECT (SELECT 1 FROM {0} WHERE {1}) AS id FROM RDB$DATABASE";
}
*/
public override string GetDefaultInsertSql(string tableName, string[] names, string[] parameters)
{
return string.Format("INSERT INTO {0} ({1}) VALUES ({2})", EscapeTableName(tableName), string.Join(",", names), string.Join(",", parameters));
}
public override string GetProviderName()
{
return "FirebirdSql.Data.FirebirdClient";
}
}
}
\ No newline at end of file
......@@ -53,6 +53,7 @@
<Compile Include="DatabaseFactory.cs" />
<Compile Include="DatabaseFactoryConfig.cs" />
<Compile Include="DatabaseType.cs" />
<Compile Include="DatabaseTypes\FirebirdDatabaseType.cs" />
<Compile Include="DatabaseTypes\MySqlDatabaseType.cs" />
<Compile Include="DatabaseTypes\OracleDatabaseType.cs" />
<Compile Include="DatabaseTypes\OracleManagedDatabaseType.cs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册