/// <summary> /// Este método es igual que el 'Dispose()' pero se ejecuta de forma manual. Se cierra la conexión con la B.D. y la Transacción /// se da por finalizada. Se liberan todos los objetos 'EntidadSQL' de la lista, de esta Transacción. /// </summary> public void Close() { //Se cierra la conexión con la B.D. _accesoSql.Dispose(); //Se elimina el este objeto 'TransactionSQL' de todos los objetos 'EntidadSQL'. foreach (EntidadSQL item in EntidadesSql) { item.TransactionSql = null; } }
/// <summary> /// Este método inserta un registro/fila con los valores del objeto 'Entidad' actual en la B.D. y tabla /// correspondientes. /// </summary> /// <param name="_accesoSql">Si es distinto de 'null' se utiliza el objeto AccesoSql recibido como parámetro /// para ejecutar la instrucción, así se mantiene la misma conexión entre varias instrucciones Sql y se permite /// el uso de transacciones Sql entre distintos objetos 'EntidadSql'.</param> /// <returns>True.- Si se pudo realizar la insercción. False.- Si no se pudo realizar la insercción.</returns> protected virtual bool Insertar() { bool cerrarConexion = (transactionSql == null) ? true : false; AccesoSql asql = (transactionSql == null) ? CrearAccesoSQL() : transactionSql.accesoSql; CampoID = asql.Insert(GetTabla(), NombresCamposBD(false), ValoresCamposBD(false)); if (cerrarConexion) {//Si existe un objeto 'TransactionSQL' para este objeto, esta instrucción sql forma parte de una transacción y //comparte conexión con otras, por eso solo se cierra la conexión a la B.D. en caso contrario. asql.Dispose(); } return(CampoID != -1); }
public static FilasDB EjecutaSQL(SqlCommand cmdSQL, AccesoSql _accesoSql = null) { FilasDB filas; bool cerrarConexion = (_accesoSql == null) ? true : false; AccesoSql asql = (_accesoSql == null) ? CrearAccesoSQL() : _accesoSql; filas = asql.Ejecuta(cmdSQL); if (cerrarConexion) {//Si se recibió un objeto 'AccesoSql' como parámetro entonces esta instrucción sql forma parte de una transacción o //comparte conexión con otras, por eso solo se cierra la conexión a la B.D. en caso contrario. asql.Dispose(); } return(filas); }
/// <summary> /// Método static y común a todas las clases 'Entidades' que actualiza un campo en la B.D. con una imagen /// en formato byte[]. /// </summary> /// <param name="campo">Nombre del campo para la imagen</param> /// <param name="tabla">Nombre de la tabla en la B.D.</param> /// <param name="condicion">Condición en formato SQL de la fila/filas donde se quiere modificar la imagen.</param> /// <param name="image">La imagen en formato byte[].</param> /// <param name="_accesoSql">Si es distinto de 'null' se utiliza el objeto AccesoSql recibido como parámetro /// para ejecutar la instrucción, así se mantiene la misma conexión entre varias instrucciones Sql y se permite /// el uso de transacciones Sql entre distintos objetos 'EntidadSql'. /// </param> /// <returns>True.- Si se consiguió actualizar el campo de la imagen en la B.D. /// False.- Si no se consiguió actualizar el campo de la imagen en la B.D.</returns> protected static bool UpdateImage(string campo, string tabla, string condicion, byte[] image, AccesoSql _accesoSql = null) { bool todoOK; bool cerrarConexion = (_accesoSql == null) ? true : false; AccesoSql asql = (_accesoSql == null) ? CrearAccesoSQL() : _accesoSql; todoOK = asql.UpdateFoto(campo, tabla, condicion, image); if (cerrarConexion) {//Si se recibió un objeto 'AccesoSql' como parámetro, esta instrucción sql forma parte de una transacción y //comparte conexión con otras, por eso solo se cierra la conexión a la B.D. en caso contrario. asql.Dispose(); } return(todoOK); }
/// <summary> /// Este método borra el registro/fila de la B.D. correspondiente a esta clase 'Entidad' (mismo Id). /// </summary> /// <param name="_accesoSql">Si es distinto de 'null' se utiliza el objeto AccesoSql recibido como parámetro /// para ejecutar la instrucción, así se mantiene la misma conexión entre varias instrucciones Sql y se permite /// el uso de transacciones Sql entre distintos objetos 'EntidadSql'. /// </param> /// <returns>True.- Se pudo borrar el registro de la B.D. False.- No se pudo borrar el registro en la B.D.</returns> public virtual bool Borrar() { int nRegs; CadenaParametro condicion = new CadenaParametro(NombreCampoID(), "=", CampoID); bool cerrarConexion = (transactionSql == null) ? true : false; AccesoSql asql = (transactionSql == null) ? CrearAccesoSQL() : transactionSql.accesoSql; nRegs = asql.Delete(GetTabla(), condicion); if (cerrarConexion) {//Si existe un objeto 'TransactionSQL' para este objeto, esta instrucción sql forma parte de una transacción y //comparte conexión con otras, por eso solo se cierra la conexión a la B.D. en caso contrario. asql.Dispose(); } return(nRegs > 0); }