1 0 Archive | Septiembre, 2010
post icon

Como crear triggers a nivel de columnas con PostgreSQL

Hace tan sólo dos días atrás se liberó la versión estable de Postgre 9.0 y la misma acarrea encima un montón de mejoras y cambios que para mí serán considerados Hitos en las Bases de Datos Libres.

Entre las features más interesantes están éstas:

  • Triggers condicionales
  • Triggers por columna
  • Hot Standby
  • Soporte a Windows 64-bit
  • Planes de EXPLAIN en JSON y XML

Hay varios otros, en éste enlace pueden encontrar un pequeño resumen en español de lo que nos ofrecerá la nueva versión: ttp://www.postgresql.org/about/press/presskit90.html.es

En este post me centraré principalmente en los disparadores por columna, que justamente unos días atrás buzzeaba con Juan Cuevas si era posible hacerlo, para sorpresa nuestra ahora sí y es el único motor de BBDD que lo está implementando a la fecha. (Continuar Leyendo sobre Como crear triggers a nivel de columnas con PostgreSQL)

post icon

Como hacer que SQL Server escuche todo sobre TCP/IP

Cuando instalamos SQL Server en la versión que sea, ésta por omisión no tiene habilitado el protocolo TCP/IP para escuchar por razones de seguridad. Hacer este cambio es demasiado sencillo y lo escribo a pedido Jnix un lector nuestro.

El primer paso es ir al menú como indica la imagen de abajo (Continuar Leyendo sobre Como hacer que SQL Server escuche todo sobre TCP/IP)

post icon

Como crear cursores en SQL Server

A través de un cursor podemos recorrer filas de un conjunto de resultados, es decir, lo que devuelva una sentecia SELECT, y el mismo tiene una manera única de operar basada en su declaración, apertura, lectura, cierre y destrucción.

En muchos casos es la única manera de resolver un problema, pero no en todos ya que hay contextos en donde pueden ser resueltos de más de una forma evitando los cursores. Personalmente recomiendo usar la menor cantidad de estos ya que consumen muchos recursos del servidor y no se destaca precisamente en su velocidad de ejecución. Además que si trabajamos una regla larga de negocio es luego dificil mantenerlo (ya recuerdo un caso de un SP con 14 Cursores anidados, era la destrucción!) . (Continuar Leyendo sobre Como crear cursores en SQL Server)

post icon

Como verificar si se actualizó o no una columna en SQL Server

Cuando hacemos sistemas medianos a grandes es común encontrarse con que necesitamos cubrir reglas de negocios, accionando contra algunos eventos o validando situaciones, en muchos casos necesitaremos conocer si valor de una columna (más atómico que saber si se agrego o eliminó un registro) fue alterado o no.

Lo que hagamos ante este evento ya depende del contexto en el que se encuentra el sistema, pero puedo mostrarles como saber si esto sucede y existe 2 maneras ortodoxas de hacerlo, también veremos cual nos conviene utilizar en cada caso.

En SQL Server los triggers (desencadenadores) nos ayudarán a ello, siempre y cuando los eventos que reacciones tales triggers sean de INSERT o UPDATE.

La primer forma que tenemos de evaluar es preguntando si los valores de las columnas de las (Continuar Leyendo sobre Como verificar si se actualizó o no una columna en SQL Server)

post icon

Descargar ficheros con Asp.Net

Muchas veces queremos que nuestra WebApp pueda descargar ficheros que utilizará el usuario, por ejemplo archivos .pdf, .xls, .doc, .exe y no deseamos que el browser los abra si está configurado de ésta manera (lo está así en la mayoría de los navegadores).

Es bastante práctico según el tipo de aplicación que estemos creando y muy fácil de implementarlo por suerte. Para comprender el concepto insertaremos un ImageButton dentro de la página y en su evento clic escribiremos el código de abajo. (Continuar Leyendo sobre Descargar ficheros con Asp.Net)

12 Septiembre 2010
post icon

Como llevar un control de versiones del código DDL en SQL Server

Ya conociamos y veniamos hablando del SubVersion para algunos IDE’s de desarrollo e instalación de los servidores sobre Windows y Linux.

Es también sabidos que subversionar nuestros proyectos en el lenguaje que estén hechos es muy sencillo, y nos aporta muchas ventajas. Pero que sucede a la hora de versionar la Base de Datos?

Aquí casi siempre tendremos problemas, especialmente si trabajan como estoy acostumbrado. Todo el desarrollo posible sobre la BD en vez de la App. Esto nos lleva a mayor tiempo y trabajo invertido sobre la base de datos no subversionada que la aplicación que sí lo está (un poco paradójico en cierto modo).

Oracle tiene su propia herramienta de versionado de código (que podremos verlo más adelante, más vale que lo tenga con lo que cuesta también este motor). Pero los otros motores? Especificamente con SQL Server podemos versionar el código con Team Foundation Server si configuramos bien las cosas.

Otra alternativa que he encontrado hace muy poco y me ha gustado más que todas las existentes (al menos que conozco) es el producto de Red Gate, la misma es de paga, pero me parece un precio justo por la herramienta que es y no representa casi nada con lo que podemos salvar utilizando. Aunque si hubiera sido bueno tener una gamma más amplia de productos para subversionar bases de datos con opciones libres y abiertas (si encuentro alguna no duden que lo postearé, o si conocen alguna haganmelo saber que lo comento). (Continuar Leyendo sobre Como llevar un control de versiones del código DDL en SQL Server)

post icon

Subir imágenes a la Base de Datos con ASP.Net

En la entrada anterior veíamos como recuperar una imagen almacenada en la Base de Datos y mostrarlo en un control de imagen con Asp.Net, en ésta ocación haremos la tarea inversa, subiremos una imagen al servidor (servirá para subir cualquier tipo de fichero binario incluso).

Para ello agregaremos el control FileUpload en alguna parte del WebForm, y programaremos en el botón de alta lo siguiente: (Continuar Leyendo sobre Subir imágenes a la Base de Datos con ASP.Net)

post icon

Mostrar imagen almacenada en la base de datos con Asp.Net

Cargar imagen desde ficheros del disco no es mucha ciencia incluso con HTML puro, el problema comienza cuando ya tenemos una base de datos que tiene almacenadas dentro de ella imágenes en campos binarios o BLOB.

Como no hay ningún tag que cargue directamente ficheros binarios, ni tampoco funciona el clásico sistema de programación Desktop en donde hacemos esa asignación directa. En Web tenemos que ingeniarnos un poco más para lograr el efecto esperado. Con Asp.Net al menos se nos hace más fácil ésta tarea. (Continuar Leyendo sobre Mostrar imagen almacenada en la base de datos con Asp.Net)

post icon

Autenticar con el método de formularios en ASP.Net

Con la tecnología ofrecida por ASP.Net tenemos varios modos de autenticación disponibles para nuestros sitios que creamos, uno de los más sencillos de administrar y programar es la autenticación del tipo FORM.

Con un par de pasos aprenderemos a configurarlos bien y otorgar los permisos necesarios. Vale recordar que éste sistema es sólo recomendado cuando estamos seguros que nuestra aplicación no manejará un volumen alto de usuarios (en promedio unos 10~20) si no fuese así deberiamos optar por otro sistema. (Continuar Leyendo sobre Autenticar con el método de formularios en ASP.Net)

post icon

Programación Orientada a Objetos: Setter y Getter

Siguiendo con la segunda entrega del tutorial de OOP, continuaremos con los conceptos de Setters y Getters.

Es aquí donde empieza a entrar en juego uno de los pilares del paradigma OOP, el encapsulamiento. No es exclusivamente set y get los que definen dicho pilar pero ellos implementan y permiten que suceda (también entran los métodos)

Que significa encapsular? En poder definir el alcance, visibilidad de cualquier atributo o método de una clase, esto nos otorga un par de beneficios, como que nadie asigne valores por equivocación o sobrescriban funcionalidades cuando no deben. También permite la programación que se llama “Caja Negra“, al tener atributos y métodos privados un programador que usará esa clase, no necesitará conocer como lo hace, sino sólamente que hace.

Es buena práctica crear los atributos con el modificador private mientras que (Continuar Leyendo sobre Programación Orientada a Objetos: Setter y Getter)

Página 1 de 212