using System;
using System.Diagnostics.CodeAnalysis;
using SDA.DataProvider.Core;
namespace SDA.DataProvider
{
///
/// Egy konkrét táblára vonatkozó DML utasításokat generál.
///
public class SDACommandBuilder : IDisposable
{
internal SDACommandBuilderWrapper CommandBuilder;
///
/// Az osztály alapértelmezett konstruktora.
///
public SDACommandBuilder()
{
CommandBuilder = SDAFactory.Instance.CreateCommandBuilder();
}
///
/// Az osztály konstruktora.
///
///
public SDACommandBuilder(SDADataAdapter dataAdapter)
{
if (dataAdapter == null)
{
throw new ArgumentNullException(nameof(dataAdapter));
}
CommandBuilder = SDAFactory.Instance.CreateCommandBuilder(dataAdapter.DataAdapter);
}
///
/// Paraméterek kötése.
///
public void DeriveParameters(SDACommand command)
{
if (command == null)
{
throw new ArgumentNullException(nameof(command));
}
CommandBuilder.DeriveParameters(command.Command);
}
///
/// Visszaadja a törlő parancs objektumot.
///
///
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
public SDACommand GetDeleteCommand()
{
return new SDACommand(CommandBuilder.GetDeleteCommand());
}
///
/// Beszúrás parancs.
///
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
public SDACommand GetInsertCommand()
{
return new SDACommand(CommandBuilder.GetInsertCommand());
}
///
/// Módosítás parancs.
///
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
public SDACommand GetUpdateCommand()
{
return new SDACommand(CommandBuilder.GetUpdateCommand());
}
///
/// Séma frissítése.
///
public void RefreshSchema()
{
CommandBuilder.RefreshSchema();
}
///
/// Eldobja az objektumot.
///
public void Dispose()
{
CommandBuilder.Dispose();
CommandBuilder = null;
}
}
}