/// <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;
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }