1 0 Tag Archives: Bases de Datos
post icon

Capturar error en SQL Server y volver a Lanzarlo

Cuando trabajamos con SQL Server con aplicaciones clientes escritas en el lenguaje de programación que sea y usamos transacciones controladas con try..catch, podríamos llegar tener problemas si no lo hacemos del modo correcto.

Me explico mejor con un ejemplo práctico, supongamos que tenemos una aplicación de facturación y queremos eliminar una factura, para salvaguardar la integridad de nuestros datos lo más lógico es crear una transacción dentro del procedimiento que hará la baja, así por si ocurre un error en el eliminado del detalle de la factura, no borramos la cabecera, o si ocurre el error al eliminar la cabecera, deshacemos el eliminado previo del detalle para que todo quede como estaba anteriormente. Hasta este punto todo es muy bonito, si en el procedimiento declaramos la transacción controlada por un bloque try y dentro del catch hacemos sólo el rollback, la aplicación nunca se dará por enterada que en la base de datos hubo algún problema, y si éste emite un mensaje de proceso satisfactorio, lo hará incluso cuando tengamos errores. ¿Por qué esto? Simple, la excepción no se expandió desde la base de datos y no pudo ser capturada (Continuar Leyendo sobre Capturar error en SQL Server y volver a Lanzarlo)

post icon

Crear Bases de Datos Replicadas Maestro-Esclavo con MySQL

Replicar nuestras bases de datos muchas veces puede ser la solución para nuestros problemas empresariales, desde crear una carga de trabajo equitativa hasta centralizar datos desde lugares remotos en donde no existe una conexión de red constante ni estable o aumentar la velocidad de las aplicaciones cuando la velocidad es muy lenta. Obviamente ganar éstas características tiene su precio a parte del metálico, donde perdemos la capacidad de tener datos actualizados todo el tiempo, o la posibilidad de encontrarnos con conflictos al momento de hacer el “merge“.

Para hacer esto mínimamente necesitaremos 2 (Continuar Leyendo sobre Crear Bases de Datos Replicadas Maestro-Esclavo con MySQL)

post icon

Plantillas de SQL Server Customizadas

Uno de los tantos problemas de desarrollar en Grupos de Trabajo grandes, es la manera en la cual codifican los demás Compañeros de Trabajo, o que no se respeten al 100% las Políticas de Desarrollo y Codificación de la Empresa / Grupo de Trabajo, para los Scripts y Procedimientos Almacenados o Triggers de nuestras Bases de Datos en SQL Server.

Para facilitar las cosas, muchas veces las herramientas como el SQL Query Analyzer y SQL Server Management Studio del SQL Server 2005 / 2008, nos presentan las “Plantillas de Código” (pequeños pre-armados de código Transact-SQL listo para modificarse y ser usado para nuestros fines).

Pero a veces nuevamente esas plantillas no tienen el formato que deseamos, y necesitamos adecuarlas a ellos.

Una manera de estandarizar esos formatos, es ubicando las plantillas y modificarlas, (Continuar Leyendo sobre Plantillas de SQL Server Customizadas)

post icon

Pérdida de Datos en Firebird (Experiencias…)

El texto es largo, pero es una experiencia que podría ayudar a evitar que se repitan situaciones similares nuevamente.

Como todos conocen, Firebird, uno de los motores de Base de Datos Libres de auge en los últimos años, es un motor de Base de Datos de amplia aceptación entre los desarrolladores de Delphi, y ciertas aplicaciones en Java u otros lenguajes de programación.

También es conocido que las facilidades de uso y administración que provee el Firebird a los DBA’s y usuarios, muchas veces nos lleva a situaciones donde hay corrupción de información, y pérdida de datos (estos podrían ser registros sencillos, estructuras, y tablas con datos completas). Algunas de las formas más comunes por las cuales uno podría perder datos, se encuentran en la Documentación del Firebird mismo, cuya versión Web es accesible desde este link (Inglés requerido).

Lo que hoy les comentaré, no es una  de las situaciones “normales” donde la información se (Continuar Leyendo sobre Pérdida de Datos en Firebird (Experiencias…))

post icon

Configurar varias instancias de MySQL en un mismo equipo

Para tener varias instancias independientes del motor de base de datos MySQL debemos hacer un par de configuraciones manuales, ¿Qué significa este concepto? Que podemos tener en la misma instalación, o mismo terminal, más de un motor, escuchando en distintos puertos (uno por cada instancia), teniendo la posibilidad de configurar de manera totalmente independiente y distinta cada una.

No debemos abusar del uso de las instancias, porque por cada una se corre un proceso que consume recursos y no se comparten entre ellos, sólo es recomendable si es estrictamente necesario, o si queremos ahorrar costos para no (Continuar Leyendo sobre Configurar varias instancias de MySQL en un mismo equipo)

post icon

Cadena de Conexión para Oracle

Lo siguiente no es un tema complejo ni dificil de encontrar información en la red, el objetivo más bien es juntar todas la cadenas de conexión (conection Strings) que se pueda en un solo lugar, en este caso para el motor de base de datos Oracle. Estarán listado por tipo de driver a utilizarse.

ODP.Net (Oracle Data Provider .Net)

1
Espacio de Nombre: Oracle.DataAccess.Client.OracleConnection

Usando TNS

1
Data Source=TORCL;User Id=myUsername;Password=myPassword;

Usando Seguridad Integrada (Integrated Security)

1
Data Source=TORCL;Integrated Security=SSPI; <a href="http://devtroce.com/2009/12/13/cadena-de-conexion-para-oracle/#more-124" class="more-link">(Continuar Leyendo sobre Cadena de Conexión para Oracle)</a>
post icon

Configurar Linked Server con SQL Server y Firebird

Un Servidor Vinculado sirve para que el motor de base de datos (en este caso SQL Server) pueda tener acceso a otra BD para hacer consultas distribuidas, ejecutar Stored Procedures, entre otros, digamos de un modo “transaparente” ya sea del mismo proveedor o no.

Para lograr esto necesitamos un proveedor de datos OLEDB y definir su cadena de conexión, a la par de asignarle un nombre lógico, el cual será usado para su invocación directa. Una vez definido esto podemos utilizarlo de manera abstracta para conectarnos a otras fuentes sin necesidad de volver a escribir toda la cadena de conexión. Crear esto con otro motor o instancia de SQL Server es relativamente sencillo, por lo tanto me centraré más bien en hacerlo con el motor de otro fabricante, en este caso Firebird, el cual fue el que más problemas me dió, con MySQL y PostgreSQL incluso fue más sencillo.

Oficialmente Microsoft da soporte para crear Linked Servers contra SQL Server y Oracle, (Continuar Leyendo sobre Configurar Linked Server con SQL Server y Firebird)

post icon

Diagrama de Venn implementado en SQL

Si queremos aplicar operaciones de conjuntos en el lenguaje SQL tenemos un par de formas de hacerlo, el modo más elegante de hacerlo es utilizar las sentencias diseñadas para este efecto. Los ejemplos que pondre se aplican a SQL Server y Firebird, esto también se puede hacer en Oracle, pero de un modo un tanto distinto, que lo veremos más adelante.

  • UNION Soportados por todas las versiones de SQL Server, y Firebird
  • EXCEPT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2
  • INTERSECT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2

Para poder utilizar estas sentencias solo debemos cumplir con dos condiciones:

  1. Todos los conjuntos de datos deben tener la misma cantidad de columnas, del mismo tipo de datos.
  2. Sólo se puede aplicar una sentencia ORDER BY, en el ultimo SELECT.

Los siguientes ejemplos trabajaremos con las entidades PROFESORES y ALUMNOS. (Continuar Leyendo sobre Diagrama de Venn implementado en SQL)

Página 13 de 13« Inicio8910111213