1 0 Archive | Noviembre, 2010
post icon

SCOPE_IDENTITY vs IDENT_CURRENT vs @@IDENTITY en SQL Server

En SQL Server al crear tablas podemos determinar que una columna que almacene un tipo de dato entero tenga valores autoincrementales, lo que se conoce como valores de identidad o identity. La cantidad de saltos entre estos valores y el valor inicial pueden ser definidos. Esto quiere decir que si en una tabla definimos varias columnas y una representa la Primary Key a la que se le asigne el valor de identidad, éste irá aumentando automáticamente su valor de acuerdo vayamos agregando registros a la tabla.

Es conveniente tener en cuenta que un valor identity nunca se revierte, es decir, si una transacción produce alguna excepción y realiza el rollback de la misma, ésta dejará un hueco entre los valores del identity.

En algún punto de nuestro sistema necesitaremos recuperar los valores (Continuar Leyendo sobre SCOPE_IDENTITY vs IDENT_CURRENT vs @@IDENTITY en SQL Server)

post icon

La polemica del String en el Switch de Java

Si las cosas van como lo planeado dento de poco tiempo veremos a la luz a Java en su versión 7 y consigo trae un montón de detractores y apologístas de los cambios que veremos. Unos dicen que se está apuntando hacía cualquier lugar, otros que la evolución es muy lenta y la competencia crece demasiado, otros que los cambios que se harán son de menor prioridad y se deberían priorizar otros aspectos, en fín, leerán a muchos opinar sobre el tema y no quiere decir que uno u otro esté mal, muchos argumentos me han gustado en la manera que lo han usado para defender sus ideas. La propuesta la pueden leer aquí (Inglés requerido).

En mi percepción hasta el momento, la caracteristica más polemica es la nueva posibilidad de evaluar el tipo de dato String dentro de la sentencia Switch. Hasta ahora sólo se puede evaluar tipos de datos que puedan tener un cast a int (int, Integer, byte, Byte, short, Short, char, enum y Character) y como String (Continuar Leyendo sobre La polemica del String en el Switch de Java)

20 Noviembre 2010
post icon

Actualizar el Firmware del HDD Seagate Barracuda 7200.11

La gran mayoría ya sabrá que la serie 7200.11 de los modelos Barracuda de Seagate tiene problemas con el firmware que hasta pueden ocasionar pérdida de datos o simplemente dejar de funcionar para siempre. Si están aún en su tiempo de garantía deberían tramitar la reposición del disco duro, o en su defecto expondré la solución al problema actualizando el firmware del disco duro manualmente.

Para ello deberán ingresar al sitio oficial del fabricante desde este enlace y descargar la imagen .ISO correspondiente a la series del disco que tengais. También pueden hacerlo desde un sistema operativo Windows aunque no recomiendo éste método. (Continuar Leyendo sobre Actualizar el Firmware del HDD Seagate Barracuda 7200.11)

16 Noviembre 2010
post icon

Particionamiento Horizontal de Tablas en PostgreSQL

Más de uno me mirará con una cara ¿De que hablas, Willis? preguntándose que es un particionamiento horizontal de tablas. Se le llama así cuando tenemos tablas que almacenan un conjunto demasiado grande de registros (en millones) y éste comienza a tener un bajo rendimiento, es entonces cuando se decide partir la tabla en tablas más pequeñas en cuanto a su almacenamiento de datos se refiere.

Para comprender completamente el concepto de Particionamiento Horizontal necesitaremos el conocimiento previo de herencia de tablas en éste motor, lo pueden leer aquí si lo desean.

Hace unos meses hablaba con un amigo y colega sobre sus tareas en una empresa de gran porte en donde tiene millones de filas creadas al día, el rubro es la telefonía celular y almacenan los mensajes de texto para luego trabajar con ellos, me mencionaban que iban partiendo sus tablas de manera manual separado en meses y el DBA (Continuar Leyendo sobre Particionamiento Horizontal de Tablas en PostgreSQL)

post icon

Herencia de Tablas en PostgreSQL

Este es el artículo nº 200 publicado en Devtroce y deseo escribir sobre algún tema de base de datos, y pensé en particionamiento horizontal en Postgre pero el mismo requiere conocimientos sobre herencias de tablas para llevarlo a cabo, entonces decidí escribir sobre ésta característica que ningún otro motor presenta.

Llamativamente la guerra de la orientación a objetos ganó en el campo de los lenguajes de aplicación pero no en las bases de datos, a pesar de ello Postgre implementa varios conceptos del mismo (aunque en un nivel básico) y otros motores no lo hacen, se dedican más bien a desarrollarse como motores relacionales, aunque tampoco ningún motor del mercado cumple con las 12 reglas de Edgar Codd. (Continuar Leyendo sobre Herencia de Tablas en PostgreSQL)

post icon

Cargar un DataGridView a partir de un DataSet/DataTable

El día de ayer veíamos como recorrer un DataReader y rellenar una grilla con sus filas, además de las ventajas y desventajas de cada uno en cada caso, hoy veremos la misma funcionalidad pero a partir de un DataSet que contiene un DataTable.

El código será en su mayor parte el mismo que ayer para comprender con mayor facilidad la diferencia, y sólo variará en la fuente de datos para la grilla.

Recordad que no es necesario en éste caso que generen las columnas en de la grilla, ya que el método DataSource de la grilla se encargará de crear la colección. (Continuar Leyendo sobre Cargar un DataGridView a partir de un DataSet/DataTable)

post icon

Recorrer un DataReader y cargar un DataGridView en C#

Hoy estaba mostrandoles a unos compañeros de trabajo trozos de código básicos para comenzar a programar en C#.Net y lo primero que hicimos fue Conectarnos a un motor de Base de Datos MySQL y cargamos una grilla a partir de un DataReader y noté que resultó más complicado que cargarlo desde un DataTable, entonces decidí escribir el código aquí para otros que lo necesiten en algún momento.

Basicamente, lo que haremos será seleccionar datos de una tabla y lo cargaremos en un DataReader, luego recorreremos secuencialmente la misma e iremos cargando fila por fila la grilla. Deben tener en cuenta que la grilla ya tiene que tener diseñada las columnas o en su defecto ir agregandoles por código las mismas. (Continuar Leyendo sobre Recorrer un DataReader y cargar un DataGridView en C#)

post icon

Como ejecutar SQL dinámico en SQL Server

Recién escribía sobre SQL Dinámico sobre MySQL y aprovecho para escribir también sobre SQL Server. Escencialmente son muy parecidos la manera de trabajar, pero MsSQL nos ofrece un 2 maneras de llevar a cabo este cometido.

  • Con el comando EXECUTE O EXEC
  • Y con el SP sp_executesql

Deben tener en cuenta que usar el segundo método es más eficiente, ya que el motor puede crear planes de ejecución en base a estadísticas de los querys si se ejecutan más de una vez, y ofrece substitución de parámetros. (Continuar Leyendo sobre Como ejecutar SQL dinámico en SQL Server)

post icon

Como ejecutar SQL dinámico en MySQL

Si necesitamos crear crear una consulta SQL que se vaya armando según algunos patrones, ya sean hechos por el usuario o algunos datos y no queremos crear muchos querys distintos y empezar a evaluar cual se ejecutará podemos recurrir a los SQL Dinámicos.

El mismo es soportado por la mayoría de los motores de base de datos, y en esta entrega veremos como hacerlo en MySQL, en las siguiente veremos como hacerlo en SQL Server y Oracle.

Consiste en crear una variable de texto (varchar en la mayoría de los casos) e ir armando dentro de ella la consulta a ejecutar, luego simplemente qudaría ejecutar la variable. (Continuar Leyendo sobre Como ejecutar SQL dinámico en MySQL)

post icon

Afinar el porcentaje de rebote real de Google Analytics

Hace unos días que vengo experimentando un poco con la publicidad en el blog, además de ir ajustando los reportes que me obtengo de Google Analytics. En el proceso me encontré con una información muy interesante en este blog y de tanto que me gusto lo quiero comentar aquí también.

Comencé a ver el porcetaje de rebote del blog y vi que era muy alto, pero no sabía que significaban realmente esos valores y me puse a investigar. Normalmente cuando los usuarios llegan a un sitio y se quedán por varios minutos, o comienzan a navegar por las distintas secciones del mismo, se considera que existe un porcentaje de rebote bajo, pero si el usuario llega y sale rápidamente se considera un porcentaje alto.

¿Esto quiere decir que el contenido del sitio no es interesante? realmente no aún, comparando con devtroce si un usuario llega buscando algún trozo de código especifico lo copia, lo usa y se va. (Continuar Leyendo sobre Afinar el porcentaje de rebote real de Google Analytics)

Página 1 de 212