Entradas

Trabajar con Excel en SQL Server

Muchas veces necesitamos obtener datos desde un Excel e importarlos en una tabla de nuestra base de datos o sencillamente utilizarlos con alguna consulta, si este es tu caso este tutorial te puede ayudar a trabajar con archivos Excel como si fueran una base de datos y cada una de sus hojas como una tabla. Lo primero que tienes que tener instado en el servidor donde está SQL Server (no vale en la máquina remota donde haces las consultas) es el Office o en su defecto 2007 Office System Driver Data Connectivity Components (solo 32 bits) o Microsoft Access Database Engine 2010 Redistributable (versiones de 32 y 64 bits). Es muy muy importante tener esto instalado para evitar el siguiente error The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered . Más importante aún es tener la versión correcta, si tu SQL Server es de 64 bits solo puedes instalar de 64 bits, si es de 32 bits lo mismo, en caso contrario tendrías el siguiente error OLE DB provider 'Micr...

Convertir UTF8 a LATIN1 en MySQL

Imaginemos que tenemos una base de datos con una tabla codificada en UTF8 y otra base de datos codificada en LATIN1, ambas tablas las queremos unir en una consulta y la latin1 es la principal ¿cómo sacar los datos codificados en UTF8 en formato legible con LATIN1? CONVERT(CAST(CONVERT(campo_tabla USING latin1) AS binary) USING utf8) Espero que les valga.

Funciones actualizadas en PHP 5.5

Imagen
En un post anterior vimos las nuevas funcionalidades que PHP 5.5 introduce , en este vamos a ver cambios que se han hecho en funciones ya existentes como por ejemplo la combinación de foreach y list, las mejoras en la función empty, el comportamiento de unpack y la eliminaciones de funciones previamente deprecadas. Combinando foreach con list Como desarrollador, una de las tareas comunes que veo de forma regular es el uso de loops en un conjunto de resultados. Dependiendo de las circunstancias, es posible que tenga que asignar un grupo de variables a valores de propiedades o valores de una matriz. Hasta este momento ha sido un proceso manual, pero en PHP 5.5 es posible asignar estos valores directamente utilizando la función list. Esto me permite recorrer el vector y desempacar matrices anidadas en variables en un bucle. Solo hay una limitación, no puedo utilizar la lista como un elemento clave. Quedaría algo como este foreach($row as list($var1, $var2)). Comprobar cualquier cosa ...

jQuery Mobile primeras impresiones

Imagen
Hoy he tenido que desarrollar una aplicación sencilla para móviles y aprovechando uno de los cursos online de lynda.com he decidido poner en práctica lo que sabía de jQuery Mobile y estas son mis primeras impresiones. Documentación Esto es lo primero que me chocó, la documentación de jQuery Mobile es mucho más deficiente a lo que nos tiene acostumbrado jQuery en sus dos grandes proyectos, incluso con incoherencias o falta de datos en algunos temas como la función jqmData (algo equivalente al data de jQuery). Algunos aspectos me parecían difíciles de entender, los ejemplos poco claros y los códigos fuente con falta de información. Temas Lo de los temas es otro mundo, en una misma distribución de jQuery Mobile utilizas varios temas y la personalización de estos si bien es muy similar a jQuery UI no me ha quedado del todo claro. Comportamiento Lo que peor llevo es cómo funciona jQuery Mobile, es totalmente diferente a jQuery, todo se basa en atributos data que son los encargado...

Firefox Error code: sec_error_unknown_issuer

Si cada vez que intentas acceder a una web con conexión segura SSL bajo https y te da el error This Connection is Untrusted es altamente probable que tu antivirus tenga algo que ver. En la siguiente imagen vemos el error al entrar acceder a la página principal de Facebook: es-es.facebook.com uses an invalid security certificate. The certificate is not trusted because no issuer chain was provided. (Error code: sec_error_unknown_issuer) Para corregir esto debemos ver el origen del error, el por qué. Pulsamos el botón para añadir una excepción que se encuentra debajo la parte inferior de la ventana al pulsar en entiendo los riesgos. En esta nueva ventana pulsaremos el botón para ver el certificado. Allí nos mostrará toda la información relacionada con el certificado de seguridad y podremos seguramente sacar el origen del error, en mi caso por ejemplo si. Lo que me llamó la atención es que estuviese el nombre de mi antivirus asociado al certificado con lo cual haciendo una b...

TeamViewer 9 y el reinicio en modo seguro

TeamViewer es la aplicación por excelencia para el control remoto de ordenadores, gratis para uso no comercial, y entre sus funcionalidades esta forzar el reinicio del ordenador asociado en modo seguro (safe mode) con funciones de red . Pero cuidado, si no configuramos correctamente luego nuestro ordenador, este no volverá a reiniciarse ni iniciarse de manera normal porque TeamViewer sobre escribe los datos de inicio de nuestro sistema operativo, para cambiarlo basta con ejecutar msconfig y quitar el check en la pestaña de Arranque al Arranque a prueba de fallos. Espero que os sirva y no tengáis que buscar tantos manuales como yo por el reinicio en bucle de Windows en modo seguro (safe mode) . Yo lo he probado en un Windows 7 SP1 supongo que el resto sean igual.

Nuevas funcionalidades en PHP 5.5

Una vez que hemos visto todas las ventajas que nos puede traer PHP 5.4 y sabiendo que esta no es la última versión estable sería interesante ver cuáles son las ventajas de esta para una vez decididos migrar optemos por una u otra. Generadores Una de las necesidades de programación más comunes, es ser capaz de realizar una acción sobre todos los elementos de un objeto. Por ejemplo, usando un foreach en una matriz, para obtener cada clave o, un foreach sobre un objeto, para obtener el nombre de cada parámetro y su valor. El mecanismo para la aplicación de este comportamiento es conocido como un iterador, que se utiliza para recorrer todos los elementos de un objeto o una matriz. Los iteradores se pueden definir de forma explícita con clases personalizadas, pero eso puede ser un proceso difícil de manejar y complejo, con apaños y, más que un puñado de funciones. ¿Qué pasa si quiero actuar en un subconjunto de una matriz, y realizar algo de lógica a medida que avanzo, pero aún así ser...