%
#encoding: UTF-8
=begin
CapicuaGen
CapicuaGen es un software que ayuda a la creación automática de
sistemas empresariales a través de la definición y ensamblado de
diversos generadores de características.
El proyecto fue iniciado por José Luis Bautista Martín, el 6 de enero
de 2016.
Puede modificar y distribuir este software, según le plazca, y usarlo
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
índole, siempre y cuando incluya este mensaje, y se permita acceso al
código fuente.
Este software es código libre, y se licencia bajo LGPL.
Para más información consultar http://www.gnu.org/licenses/lgpl.html
=end
%>using System;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Text;
using System.Collections.Generic;
namespace <%=self.generation_attributes[:namespace]%>
{
///
/// Clase base de acceso a datos
///
abstract partial class AccesoDatos
{
#region Propiedades
///
/// Nombre de la conexión
///
protected const string nombreConexion= <%=get_db_connection_name_method%>;
///
/// Fabrica que crea los objetos de acceso a datos
///
protected DbProviderFactory dbProviderFactory;
#endregion Propiedades
#region Constructor
///
/// Constructor
///
public AccesoDatos()
{
dbProviderFactory = <%=get_db_connection_provider_method%>;
}
#endregion Constructor
#region Sentencias SQL
///
/// Listado completo de los registros
///
/// Listado completo de los registros
public abstract IEnumerable Listar();
///
/// Consulta
///
/// Registro a consultar
/// Registro consultado
public abstract T Consultar(T registro);
///
/// Consulta si un registro existe
///
/// Registro a consultar
/// Devuelve el registro o nulo
public abstract T ConsultarExiste(T registro);
///
/// Actualización
///
/// Registro a actualizar
public abstract void Actualizar(T registro);
///
/// Inserta un registro
///
/// Registro para insertar
public abstract void Insertar(T registro);
///
/// Borrado de registros
///
/// Registro a eliminar
public abstract void Eliminar(T registro);
#endregion Sentencias SQL
#region funciones para crear comandos
///
/// Devuelve una conexión abierta a base de datos
///
/// Conexión abierta
protected virtual DbConnection CrearConexionAbierta()
{
DbConnection dbConnection = dbProviderFactory.CreateConnection();
dbConnection.ConnectionString = <%=get_db_connection_string_method%>;
dbConnection.Open();
return dbConnection;
}
///
/// Crea un comando de texto
///
/// Texto a crear
/// comando
protected virtual DbCommand CrearComando(string textoComando)
{
DbCommand comando = dbProviderFactory.CreateCommand();
comando.CommandType = CommandType.Text;
comando.CommandText = textoComando;
return comando;
}
///
/// Agregado un parámetro a un comando
///
/// Comando
/// Nombre del parámetro
/// Tipo del parámetro
/// Valor del parámetro
protected virtual void AgregarParametro(DbCommand comando, string nombre, DbType tipoSql, object valor)
{
DbParameter parametro = dbProviderFactory.CreateParameter();
parametro.ParameterName = nombre;
parametro.DbType = tipoSql;
parametro.Value = valor;
comando.Parameters.Add(parametro);
}
#endregion funciones para crear comandos
}
}