14/5/12

Pipus fracturada


Holas a todos. Estoy triste debido a que mi gatita, la Pipus Plomius, se ha fracturado una de sus patas traseras. El domingo antepasado apareció con una herida en la pata, y la curamos, pero unos tres días después notamos que la pata le colgaba muy feo. Si bien está bien de ánimo y no ha dejado de comer, el sábado la llevamos al veterinario, y nos confirmó lo evidente, aunque también nos calmó a confirmarnos que no había infección (nuestra cura parece que fue buena). El caso es que nos dio como solución una costosa cirugía.

Es terrible en estos momentos reconocer que se es pobre y no se cuenta con recursos como para salvar este tipo de situaciones. La Pipus es parte de mi familia, y aunque conversamos con el doc la posibilidad de no hacer nada, pues con el tiempo igual se sueldan las fracturas, el hecho de que lo haga de una forma incorrecta, pero sobretodo, el no responder al amor que siempre le he profesado me tiene muy aproblemada. Lo cierto es que sí cuento con el dinero, pero lamentablemente llega en unos meses más, y la operación no puede esperar. También estoy viendo la posibilidad de que mi familia me preste, todo sea por mi Pipus.

Como sea, el dinero ya no es el problema, la verdad. Si escribo acá no es tanto para contar que mi gata se fracturó, sino sólo para gruñir un poco (como me es habitual), y porque sabía que si buscaba consejos en internet al respecto me encontraría con que todos dirían "llévala al veterinario, qué clase de ser humano eres que no te la juegas por tu mascota", etc., como si el no tener plata no fuera obstáculo gigante para realizar algunas cosas. La arrogancia de esas personas me molesta muchísimo. Hace parecer que el amor de una persona por su mascota está medido por cuánto dinero invierte en ella y no por lo que hay en el corazón de la persona. Sólo eso.

Hasta pronto.

3/5/12

[tsql] LEN vs DATALENGTH

Holas a todos. Este es otro registro programístico, hoy sobre TSQL (SQL de Microsoft SQL Server).

Mi jefe me comentó la existencia de una función llamada DATALENGTH, lo cual me extrañó, teniendo en cuenta la existencia de la función LEN. Pero buscando en internet la diferencia existente entre ambas, nos encontramos con lo siguiente:

LEN: función que retorna la cantidad de caracteres de una cadena, ignorando los espacios vacíos después de la cadena.
DATALENGTH: función que retorna la cantidad de bytes de una cadena.

Ateniéndonos al detalle clave de "caracteres vs bytes", nos encontramos con que las funciones, aunque en muchos casos nos darán idéntico resultado, en más de una ocasión nos reportarán distintos conteos finales. Y, probablemente, no sólo habrá diferencia a nivel de resultado, sino de performance, ya que LEN realiza una tarea extra en su desempeño (hacer RTRIM a la cadena), por lo que DATALENGTH en teoría debiera funcionar más rápido que LEN.

Volviendo al tema "caracteres vs bytes", tener en claro que:
  • 1 caracter es 1 byte
  • 1 espacio vacío es 1 byte
Todo esto quedará más claro si vemos unos ejemplos:

Ejemplo 1: Si tenemos que:

SELECT LEN('hola mundo'), DATALENGTH('hola mundo');

...el resultado sería:
10 | 10

Ejemplo 2: Si tenemos que:

SELECT LEN(' hola mundo'), DATALENGTH(' hola mundo');

...el resultado sería:
11 | 11

Ejemplo 3: Si tenemos que:

SELECT LEN('hola mundo '), DATALENGTH('hola mundo ');

...el resultado sería:
10 | 11

Ejemplo 4: Si tenemos que:

SELECT LEN(' hola mundo '), DATALENGTH(' hola mundo ');

...el resultado sería:
11 | 12


Espero que les sirva para cuando elijan la mejor forma de hacer sus propias consultas :D
Gracias por leer y hasta luego! :)