87 lines
2.9 KiB
C#
87 lines
2.9 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using JetBrains.Annotations;
|
|
using SDA.DataProvider.Core;
|
|
|
|
namespace SDA.DataProvider
|
|
{
|
|
/// <summary>
|
|
/// Az databázis-kiszolgálóval való működéshez szükséges osztálygyár.
|
|
/// </summary>
|
|
public abstract class SDAFactory
|
|
{
|
|
/// <summary>
|
|
/// SDAFactory konstruktora.
|
|
/// </summary>
|
|
/// <param name="commandTimeout">Command alapértelmezett timeout-ja.</param>
|
|
public SDAFactory(int? commandTimeout)
|
|
{
|
|
CommandTimeout = commandTimeout;
|
|
}
|
|
|
|
private const bool UseOptimizations = false;
|
|
|
|
//ORA bulk insert (arrray dml) impl. needed
|
|
public bool UseOptimizedDataAccessLayer { get; set; } = UseOptimizations;
|
|
|
|
//ORA work needed to create a range sequence sp
|
|
public bool UseOptimizedIdGeneration { get; set; } = UseOptimizations;
|
|
|
|
//ORA ok
|
|
public bool UseOptimizedPrintName { get; set; } = UseOptimizations;
|
|
|
|
//ORA ok
|
|
public bool UseOptimizedOrgName { get; set; } = UseOptimizations;
|
|
|
|
//ORA ?
|
|
public bool UseOptimizedUpdateIratState { get; set; } = UseOptimizations;
|
|
|
|
//ORA ?
|
|
public bool UseOptimizedUserHandling { get; set; } = UseOptimizations;
|
|
|
|
//ORA ?
|
|
public bool UseOptimizedInteriorOrganizationHandling { get; set; } = UseOptimizations;
|
|
|
|
public bool UseOptimizedEntityCache { get; set; } = UseOptimizations;
|
|
|
|
/// <summary>
|
|
/// Általános command-k alapértelmezett timeout paramétere. Egy sql művelet hány másodpercig tartson.
|
|
///
|
|
/// Nem kötelező. Jelenleg MSSQL 300 sec-re van állítva, Oracle nincs beállítva.
|
|
/// </summary>
|
|
public int? CommandTimeout { get; internal set; }
|
|
|
|
[NotNull]
|
|
internal abstract SDAConnectionWrapper CreateConnection();
|
|
|
|
[NotNull]
|
|
internal abstract SDACommandWrapper CreateCommand();
|
|
|
|
[NotNull]
|
|
internal abstract SDADataAdapterWrapper CreateDataAdapter();
|
|
|
|
[NotNull]
|
|
internal abstract SDACommandBuilderWrapper CreateCommandBuilder();
|
|
|
|
[NotNull]
|
|
internal abstract SDACommandBuilderWrapper CreateCommandBuilder([NotNull] SDADataAdapterWrapper dataAdapter);
|
|
|
|
/// <summary>
|
|
/// Az adatbázis-kiszolgáló specifikus osztálygyár példány.
|
|
/// </summary>
|
|
[CanBeNull]
|
|
public static SDAFactory Instance { get; set; }
|
|
|
|
[NotNull]
|
|
internal static SDAFactory GetByDatabaseType(DatabaseType databaseType, int? commandTimeout)
|
|
{
|
|
switch (databaseType)
|
|
{
|
|
case DatabaseType.NativeMSSQL:
|
|
return new Factories.MSSQLFactory(commandTimeout);
|
|
default:
|
|
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Database '{0}' not supported.", databaseType));
|
|
}
|
|
}
|
|
}
|
|
}
|