<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Jorge Iván Meza Martínez &#187; Bases de datos</title> <atom:link href="http://blog.jorgeivanmeza.com/category/bases-de-datos/feed/" rel="self" type="application/rss+xml" /><link>http://blog.jorgeivanmeza.com</link> <description>The Fire Within Me: &#34;knowledge will set you free&#34;</description> <lastBuildDate>Tue, 31 Jan 2012 18:18:13 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Campos autonuméricos con SQLite3</title><link>http://blog.jorgeivanmeza.com/2012/01/campos-autonumericos-con-sqlite3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=campos-autonumericos-con-sqlite3</link> <comments>http://blog.jorgeivanmeza.com/2012/01/campos-autonumericos-con-sqlite3/#comments</comments> <pubDate>Mon, 30 Jan 2012 21:33:57 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[autoincrement]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[Sqlite]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=49954</guid> <description><![CDATA[Introducción SQLite es un gestor de bases de datos pequeño y simple que se usa ampliamente como apoyo al software (aplicaciones de escritorio, navegadores web, etc.) y en sistemas embebidos como los teléfonos móviles (Android por ejemplo). A continuación se &#8230; <a
href="http://blog.jorgeivanmeza.com/2012/01/campos-autonumericos-con-sqlite3/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción</h2><p><a
href="http://sqlite.org/">SQLite</a> es un gestor de bases de datos pequeño y simple que se usa ampliamente como apoyo al software (aplicaciones de escritorio, navegadores web, etc.) y en sistemas embebidos como los teléfonos móviles (Android por ejemplo).</p><p>A continuación se muestra como crear campos autonuméricos en esta base de datos, es decir, campos cuyo valor es un número serial que es asignado automáticamente por el software.</p><h2>Procedimiento</h2><p>Crear la tabla con el campo autonumérico (<span
style="font-family: courier new,courier;">code</span> en este caso).</p><pre class="sql">CREATE TABLE test (
code     INTEGER        PRIMARY KEY    AUTOINCREMENT,
name     VARCHAR(20)    UNIQUE,
value    FLOAT
);</pre><p>Agregar datos a la tabla recién creada.</p><pre class="sql">INSERT INTO test VALUES(NULL, 'demo1', 10.10);
INSERT INTO test VALUES(NULL, 'demo2', 20.20);
INSERT INTO test VALUES(NULL, 'demo3', 30.30);</pre><p>Consultar los datos recién ingresados.</p><pre class="sql">sqlite&gt; select * from test;
    1|demo1|10.1
    2|demo2|20.2
    3|demo3|30.3</pre><p>Consultar el valor del último campo autonumérico ingresado durante la sesión.</p><pre class="sql">SELECT last_insert_rowid();
    3</pre><p>Enlaces</p><ul><li>SQLite<br
/><a
href="http://sqlite.org/">http://sqlite.org/</a></li><li>SQLite autoincrement<br
/><a
href="http://www.sqlite.org/autoinc.html">http://www.sqlite.org/autoinc.html</a></li><li>How do I create an AUTOINCREMENT field<br
/><a
href="http://www.sqlite.org/faq.html#q1">http://www.sqlite.org/faq.html#q1</a></li><li>Function API <span
style="font-family: courier new,courier;">last_insert_rowid()</span><br
/><a
href="http://www.sqlite.org/lang_corefunc.html#last_insert_rowid">http://www.sqlite.org/lang_corefunc.html#last_insert_rowid</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2012/01/campos-autonumericos-con-sqlite3/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Cursos de la Maestría en Software Libre de la UOC</title><link>http://blog.jorgeivanmeza.com/2011/12/cursos-de-la-maestria-en-software-libre-de-la-uoc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cursos-de-la-maestria-en-software-libre-de-la-uoc</link> <comments>http://blog.jorgeivanmeza.com/2011/12/cursos-de-la-maestria-en-software-libre-de-la-uoc/#comments</comments> <pubDate>Tue, 20 Dec 2011 18:08:43 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Educación]]></category> <category><![CDATA[Gerencia de Proyectos]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Software geográfico]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Cursos]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=49748</guid> <description><![CDATA[Los cursos listados a continuación hacen parte de la Maestría en Software Libre de la Universidad de Cataluña y que han sido publicados bajo la licencia de Creative Commons a través de su sitio de OpenCourseWare. 50039 &#8211; Fundamentos de &#8230; <a
href="http://blog.jorgeivanmeza.com/2011/12/cursos-de-la-maestria-en-software-libre-de-la-uoc/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Los cursos listados a continuación hacen parte de la <a
href="http://www.uoc.edu/estudios/masters-universitarios/software-libre/presentacion/index.html" target="_blank">Maestría en Software Libre</a> de la <a
href="http://www.uoc.edu/" target="_blank">Universidad de Cataluña</a> y que han sido publicados bajo la licencia de <a
href="http://creativecommons.org/licenses/by-nc-sa/3.0/" target="_blank">Creative Commons</a> a través de su sitio de <a
href="http://ocw.uoc.edu/" target="_blank">OpenCourseWare</a>.</p><table><tbody><tr
class="odd"><td><a
title="50039 - Fundamentos de fotografía e imagen digital, Septiembre 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/fundamentos-de-fotografia-e-imagen-digital">50039 &#8211; Fundamentos de fotografía e imagen digital</a></td></tr><tr
class="even"><td><a
title="50051 - Sistemas de vídeo y de tratamiento de la imagen , Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/sistemas-de-video-y-de-tratamiento-de-la-imagen">50051 &#8211; Sistemas de vídeo y de tratamiento de la imagen</a></td></tr><tr
class="odd"><td><a
title="50070 - Laboratorio de PHP y MySQL, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/laboratorio-de-php-y-mysql">50070 &#8211; Laboratorio de PHP y MySQL</a></td></tr><tr
class="even"><td><a
title="75143 - Trabajo final de carrera .NET, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/trabajo-final-de-carrera.net">75143 &#8211; Trabajo final de carrera .NET</a></td></tr><tr
class="odd"><td><a
title="75555 - Prácticas de programación, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/practicas-de-programacion">75555 &#8211; Prácticas de programación</a></td></tr><tr
class="even"><td><a
title="75591 - Estructura de redes  de computadores, Septiembre 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/estructura-de-redes-de-computadores">75591 &#8211; Estructura de redes de computadores</a></td></tr><tr
class="odd"><td><a
title="75611 - Fundamentos físicos de la informática, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/fundamentos-fisicos-de-la-informatica">75611 &#8211; Fundamentos físicos de la informática</a></td></tr><tr
class="even"><td><a
title="75614 - Iniciación a las matemáticas para la ingeniería, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/iniciacion-a-las-matematicas-para-la-ingenieria">75614 &#8211; Iniciación a las matemáticas para la ingeniería</a></td></tr><tr
class="odd"><td><a
title="76514 - Imagen y lenguaje visual, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/imagen-y-lenguaje-visual">76514 &#8211; Imagen y lenguaje visual</a></td></tr><tr
class="even"><td><a
title="76517 - Arquitectura de la información, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/arquitectura-de-la-informacion">76517 &#8211; Arquitectura de la información</a></td></tr><tr
class="odd"><td><a
title="76521 - Redes Multimedia, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/redes-multimedia">76521 &#8211; Redes Multimedia</a></td></tr><tr
class="even"><td><a
title="76526 - Composición digital, Septiembre 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/composicion-digital">76526 &#8211; Composición digital</a></td></tr><tr
class="odd"><td><a
title="76529 - Interfaces para sistemas multimedia, Febrero 2011" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/interfaces-para-sistemas-multimedia">76529 &#8211; Interfaces para sistemas multimedia</a></td></tr><tr
class="even"><td><a
title="76531 - Animación 3D, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/animacion-3d">76531 &#8211; Animación 3D</a></td></tr><tr
class="odd"><td><a
title="76532 - Fotografía digital, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/fotografia-digital">76532 &#8211; Fotografía digital</a></td></tr><tr
class="even"><td><a
title="81504 - Física I, Septiembre 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/fisica">81504 &#8211; Física I</a></td></tr><tr
class="odd"><td><a
title="89018 - Trabajo final de carrera de telecomunicación, Septiembre 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/trabajo-final-de-carrera-de-telecomunicaciones">89018 &#8211; Trabajo final de carrera de telecomunicación</a></td></tr><tr
class="even"><td><a
title="93133 - Introducción a la creación de páginas web, Septiembre 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/introduccion-a-la-creacion-de-paginas-web">93133 &#8211; Introducción a la creación de páginas web</a></td></tr><tr
class="odd"><td><a
title="93134 - Marcadores sociales, una herramienta para organizar la Red, Septiembre 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/marcadores-sociales-una-herramienta-para-organizar-la-red">93134 &#8211; Marcadores sociales, una herramienta para organizar la Red</a></td></tr><tr
class="even"><td><a
title="93149 - Fotografia de viajes, Febrero 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/fotografia-de-viajes">93149 &#8211; Fotografia de viajes</a></td></tr><tr
class="odd"><td><a
title="B0019 - Estética y narrativa en medios digitales, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/estetica-y-narrativa-en-medios-digitales">B0019 &#8211; Estética y narrativa en medios digitales</a></td></tr><tr
class="even"><td><a
title="B0762 - Servicios OGC, Septiembre 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/serveis-ogc">B0762 &#8211; Servicios OGC</a></td></tr><tr
class="odd"><td><a
title="B0763 - Programación y Personalización SIG , Septiembre 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/programacion-y-personalizacion-sig">B0763 &#8211; Programación y Personalización SIG</a></td></tr><tr
class="even"><td><a
title="M1302 - Ingeniería de la usabilidad, Septiembre 2011" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/ingenieria-de-la-usabilidad">M1302 &#8211; Ingeniería de la usabilidad</a></td></tr><tr
class="odd"><td><a
title="M1308 - Tecnología y desarrollo en dispositivos móviles, Setembre 2011" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/tecnologia-y-desarrollo-en-dispositivos-moviles">M1308 &#8211; Tecnología y desarrollo en dispositivos móviles</a></td></tr><tr
class="even"><td><a
title="M2101 - Introducción al software libre, Febrero 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/introduccion-al-software-libre">M2101 &#8211; Introducción al software libre</a></td></tr><tr
class="odd"><td><a
title="M2102 - Sistema operativo GNU/Linux básico, Febrero 2008" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/sistema-operativo-gnu-linux-basico">M2102 &#8211; Sistema operativo GNU/Linux básico</a></td></tr><tr
class="even"><td><a
title="M2103 - Administración avanzada del sistema operativo GNU/Linux, Septiembre 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/administracion-avanzada-del-sistema-operativo-gnu-linux">M2103 &#8211; Administración avanzada del sistema operativo GNU/Linux</a></td></tr><tr
class="odd"><td><a
title="M2104 - Implantación de sistemas de software libre, Febrero 2005" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/implantacion-de-sistemas-de-software-libre">M2104 &#8211; Implantación de sistemas de software libre</a></td></tr><tr
class="even"><td><a
title="M2105 - Redes de computadores, Marzo 2004" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/redes-de-computadores">M2105 &#8211; Redes de computadores</a></td></tr><tr
class="odd"><td><a
title="M2107 - Aspectos avanzados de seguridad en redes, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/aspectos-avanzados-de-seguridad-en-redes">M2107 &#8211; Aspectos avanzados de seguridad en redes</a></td></tr><tr
class="even"><td><a
title="M2108 - Desarrollo de aplicaciones web, Marzo 2004" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/desarrollo-de-aplicaciones-web">M2108 &#8211; Desarrollo de aplicaciones web</a></td></tr><tr
class="odd"><td><a
title="M2109 - Bases de datos, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/bases-de-datos">M2109 &#8211; Bases de datos</a></td></tr><tr
class="even"><td><a
title="M2110 - Introducción al desarrollo de software, Marzo 2004" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/introduccion-al-desarrollo-de-software">M2110 &#8211; Introducción al desarrollo de software</a></td></tr><tr
class="odd"><td><a
title="M2111 - Conceptos avanzados en desarrollo de software libre, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/conceptos-avanzados-en-desarrollo-de-software-libre">M2111 &#8211; Conceptos avanzados en desarrollo de software libre</a></td></tr><tr
class="even"><td><a
title="M2112 - Ingeniería del software en entornos del software libre, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/ingenieria-del-software-en-entornos-del-software-libre">M2112 &#8211; Ingeniería del software en entornos del software libre</a></td></tr><tr
class="odd"><td><a
title="M2113 - Utilidades y herramientas de software libre, Septiembre 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/utilidades-y-herramientas-de-software-llibre">M2113 &#8211; Utilidades y herramientas de software libre</a></td></tr><tr
class="even"><td><a
title="M2114 - Aspectos legales y de explotación del software libre, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/aspectos-legales-y-de-explotacion-del-software-libre">M2114 &#8211; Aspectos legales y de explotación del software libre</a></td></tr><tr
class="odd"><td><a
title="M2114 - Aspectos legales y de explotación del software libre, Febrero 2009" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/aspectos-legales-y-de-explotacion-del-software-libre-1">M2114 &#8211; Aspectos legales y de explotación del software libre (b)</a></td></tr><tr
class="even"><td><a
title="M2115 - Aspectos económicos y modelos de negocio del software llibre  , Septiembre 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/aspectos-economicos-y-modelos-de-negocio-del-software-llibre">M2115 &#8211; Aspectos económicos y modelos de negocio del software llibre</a></td></tr><tr
class="odd"><td><a
title="M2117 - El software libre en el sector público, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/el-software-libre-en-el-sector-publico">M2117 &#8211; El software libre en el sector público</a></td></tr><tr
class="even"><td><a
title="M2123 - Proyecto web, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/proyecto-web">M2123 &#8211; Proyecto web</a></td></tr><tr
class="odd"><td><a
title="M2124 - Desarrollo de proyectos de software libre, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/desarrollo-de-proyectos-de-software-libre">M2124 &#8211; Desarrollo de proyectos de software libre</a></td></tr><tr
class="even"><td><a
title="M2125 - Proyecto de dirección de sistemas de información, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/proyecto-de-direccion-de-sistemas-de-informacion-1">M2125 &#8211; Proyecto de dirección de sistemas de información</a></td></tr><tr
class="odd"><td><a
title="M2132 - Proyecto en Administración de Redes y Sistemas Operativos basados en GNU/Linux, Febrero 2007" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/proyecto-de-direccion-de-sistemas-de-informacion">M2132 &#8211; Proyecto en Administración de Redes y Sistemas Operativos basados en GNU/Linux</a></td></tr><tr
class="even"><td><a
title="M2150 - Administración de sistemas GNU/Linux, Febrero 2010" href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/administracion-de-sitemas-gnu-linux">M2150 &#8211; Administración de sistemas GNU/Linux</a></td></tr></tbody></table><h2>Enlaces</h2><ul><li>Informática, tecnología y multimedia.<br
/><a
href="http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/view?set_language=es" target="_blank">http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2011/12/cursos-de-la-maestria-en-software-libre-de-la-uoc/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Modificar la contraseña del usuario root de MySQL 5</title><link>http://blog.jorgeivanmeza.com/2011/06/modificar-la-contrasena-del-usuario-root-de-mysql-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=modificar-la-contrasena-del-usuario-root-de-mysql-5</link> <comments>http://blog.jorgeivanmeza.com/2011/06/modificar-la-contrasena-del-usuario-root-de-mysql-5/#comments</comments> <pubDate>Thu, 02 Jun 2011 21:50:57 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[contraseña]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[MySQL]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=17718</guid> <description><![CDATA[Introducción. El procedimiento que se describe a continuación permite modificar la contraseña del usuario administrador (root)  de MySQL 5.  Es útil para los casos en que esta se olvida y por lo tanto ya no es posible acceder a sus &#8230; <a
href="http://blog.jorgeivanmeza.com/2011/06/modificar-la-contrasena-del-usuario-root-de-mysql-5/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><p>El procedimiento que se describe a continuación permite modificar la contraseña del usuario administrador (<span
style="font-family: 'courier new', courier;">root</span>)  de MySQL 5.  Es útil para los casos en que esta se olvida y por lo tanto ya no es posible acceder a sus funciones de administración.</p><h2>Procedimiento.</h2><p>Detener el servicio si se está ejecutando actualmente.</p><p><span
style="font-family: 'courier new', courier;"># service mysql5 stop</span></p><p>Iniciar el servicio con el modificador de <em>skip-grant-tables</em>.</p><p><span
style="font-family: 'courier new', courier;"># mysqld_safe &#8211;skip-grant-tables &amp;</span></p><p>Realizar una conexión al motor de base de datos a través de la herramienta de línea de comando.</p><p><span
style="font-family: 'courier new', courier;"># mysql -u root</span></p><p>Realizar la actualización de la contraseña.  Téngase en cuenta que se deberá modificar la palabra <span
style="font-family: 'courier new', courier;">NUEVO_PASSWORD</span> por la nueva contarseña que se desee asignar al usuario <span
style="font-family: 'courier new', courier;">root</span>.</p><p><span
style="font-family: 'courier new', courier;">mysql&gt; use mysql;</span><br
/> <span
style="font-family: 'courier new', courier;">mysql&gt; update user set password=PASSWORD("NUEVO_PASSWORD") where User='root';</span><br
/> <span
style="font-family: 'courier new', courier;">mysql&gt; flush privileges;</span><br
/> <span
style="font-family: 'courier new', courier;">mysql&gt; quit</span></p><p>Detener el servicio</p><p><span
style="font-family: 'courier new', courier;"># service mysql5 stop</span></p><p>Iniciarlo normalmente.</p><p><span
style="font-family: 'courier new', courier;"># service mysql5 start</span></p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2011/06/modificar-la-contrasena-del-usuario-root-de-mysql-5/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalación de FreeTDS para el acceso a MSSQL desde PHP en Linux Debian 5</title><link>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-freetds-para-el-acceso-a-mssql-desde-php-en-linux-debian-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-freetds-para-el-acceso-a-mssql-desde-php-en-linux-debian-5</link> <comments>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-freetds-para-el-acceso-a-mssql-desde-php-en-linux-debian-5/#comments</comments> <pubDate>Mon, 20 Apr 2009 14:25:58 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Debian]]></category> <category><![CDATA[FreeTDS]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MSSQL]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1660</guid> <description><![CDATA[Instalación de libsybdb. Descargar la última versión de libsysbdb disponible en el sitio http://packages.debian.org/stable/libs/libsybdb5. # wget http://debian.torredehanoi.org/debian/pool/main/f/freetds/libsybdb5_0.82-4_i386.deb # dpkg -i libsybdb5_0.82-4_i386.deb Instalación de FreeTDS. # apt-get install freetds-common Instalación del módulo de PHP para el acceso a bases de datos &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/04/instalacion-de-freetds-para-el-acceso-a-mssql-desde-php-en-linux-debian-5/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Instalación de libsybdb.</h2><p>Descargar la última versión de <span
style="font-family: courier new,courier;">libsysbdb</span> disponible en el sitio <a
href="http://packages.debian.org/stable/libs/libsybdb5" target="_blank">http://packages.debian.org/stable/libs/libsybdb5</a>.</p><p><span
style="font-family: courier new,courier;"># wget http://debian.torredehanoi.org/debian/pool/main/f/freetds/libsybdb5_0.82-4_i386.deb</span></p><p><span
style="font-family: courier new,courier;"># dpkg -i libsybdb5_0.82-4_i386.deb</span></p><h2>Instalación de FreeTDS.</h2><p><span
style="font-family: courier new,courier;"># apt-get install freetds-common</span></p><p>Instalación del módulo de PHP para el acceso a bases de datos Microsoft SQL Server.</p><p><span
style="font-family: courier new,courier;"># apt-get install php5-sybase</span></p><h2>Configuración del formato de fecha según se desee.</h2><p><span
style="font-family: courier new,courier;"># vi /etc/freetds/locales.conf</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[default]<br
/> <strong>date format = %d/%m/%Y %H:%M:%S</strong></span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[default_orig]<br
/> date format = %b %d %Y %I:%M%p</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[en_US]<br
/> date format = %b %d %Y %I:%M%p<br
/> language = us_english<br
/> char set = iso_1</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[es_ES1]<br
/> date format = %b %d %Y %I:%M%p<br
/> language = spanish<br
/> char set = iso_1</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[pt_BR]<br
/> date format = %d/%m/%Y %H:%M<br
/> language = Portuguese<br
/> char set = iso_1</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">[it_IT]<br
/> date format = %d/%m/%Y %H:%M<br
/> language = Italiano<br
/> char set = iso_1</span></p><h2>Enlaces.</h2><ul><li>FreeTDS &#8211; Making the leap to SQL Server.<br
/> <a
href="http://www.freetds.org/" target="_blank">http://www.freetds.org/</a></li><li>FreeTDS User Guide.<br
/> <a
href="http://www.freetds.org/userguide/" target="_blank">http://www.freetds.org/userguide/</a></li><li><span
style="font-family: courier new,courier;">libsybdb5</span> &#8211; libraries for connecting to MS SQL and Sybase SQL servers.<br
/> <a
href="http://packages.debian.org/stable/libs/libsybdb5" target="_blank">http://packages.debian.org/stable/libs/libsybdb5</a></li><li>API PHP5 para el acceso a bases de datos MSSQL.<br
/> <a
href="http://www.php.net/manual/en/book.mssql.php" target="_blank">http://www.php.net/manual/en/book.mssql.php</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-freetds-para-el-acceso-a-mssql-desde-php-en-linux-debian-5/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Acerca de los campos IDENTITY en MSSQL</title><link>http://blog.jorgeivanmeza.com/2009/03/acerca-de-los-campos-identity-en-mssql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=acerca-de-los-campos-identity-en-mssql</link> <comments>http://blog.jorgeivanmeza.com/2009/03/acerca-de-los-campos-identity-en-mssql/#comments</comments> <pubDate>Mon, 16 Mar 2009 15:41:00 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[MSSQL]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1545</guid> <description><![CDATA[Como insertar un registro con un valor arbitrario en un campo IDENTITY. Desactivar la revisión de los campos IDENTITY. SET IDENTITY_INSERT MiTabla ON Realizar la inserción con valores explícitos. INSERT INTO MiTabla (llave, campos) values (5, 'Otros valores') Activar nuevamente &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/03/acerca-de-los-campos-identity-en-mssql/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Como insertar un registro con un valor arbitrario en un campo IDENTITY.</h2><p>Desactivar la revisión de los campos IDENTITY.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">SET IDENTITY_INSERT <em>MiTabla</em> ON</span></p><p>Realizar la inserción con valores explícitos.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">INSERT INTO <em>MiTabla</em> (<em>llave</em>, <em>campos</em>) values (<em>5</em>, <em>'Otros valores'</em>)</span></p><p>Activar nuevamente la revisión de los campos IDENTITY.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">SET IDENTITY_INSERT <em>MiTabla</em> OFF</span></p><h2>Como modificar el valor de secuencia de un campo IDENTITY.</h2><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">dbcc CHECKIDENT(<em>MiTabla</em>, Reseed, <em>valor</em>)</span></p><p>El <span
style="font-family: courier new,courier;"><em>valor</em></span> deberá corresponder con el último valor generado por el campo IDENTITY.  Es decir, si se desea que el próximo valor generado sea 10, deberá invocarse la sentencia con 9.</p><h2>Como desactivar un índice.</h2><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">ALTER INDEX <em>MiIndice</em> ON <em>MiTabla</em> DISABLE</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">&#8211; Sentencias SQL que requieren del índice desactivado.<br
/> </span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">ALTER INDEX <em>MiIndice</em> ON <em>MiTabla</em> REBUILD</span></p><h2>Como desactivar un <em>trigger</em>.</h2><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">ALTER TABLE MiTabla DISABLE TRIGGER MiTrigger</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">&#8211; Sentencias SQL que requieren del <em>trigger</em> desactivado.<br
/> </span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">ALTER TABLE MiTabla ENABLE TRIGGER MiTrigger</span></p><h2>Enlaces.</h2><ul><li>A SQL Server trick: updating the values of IDENTITY columns.<br
/> <a
href="http://blogs.3sharp.com/deving/archive/2005/11/04/971.aspx" target="_blank">http://blogs.3sharp.com/deving/archive/2005/11/04/971.aspx</a></li><li>Identidad: Cambiar valores de campo Identity.<br
/> <a
href="http://sql.manivesa.com/Tutoriales+SQL/General/230.aspx" target="_blank">http://sql.manivesa.com/Tutoriales+SQL/General/230.aspx</a></li><li>Tips for SQL Server Identity Columns.<br
/> <a
href="http://ryanfarley.com/blog/archive/2004/12/19/1313.aspx" target="_blank">http://ryanfarley.com/blog/archive/2004/12/19/1313.aspx</a></li><li>SQL SERVER &#8211; Disable Index &#8211; Enable Index &#8211; ALTER Index.<br
/> <a
href="http://blog.sqlauthority.com/2007/05/17/sql-server-disable-index-enable-index-alter-index/" target="_blank">http://blog.sqlauthority.com/2007/05/17/sql-server-disable-index-enable-index-alter-index/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/03/acerca-de-los-campos-identity-en-mssql/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Conexión a MSSQL desde Aptana utilizando el controlador JDBC de jTDS</title><link>http://blog.jorgeivanmeza.com/2009/02/conexion-a-mssql-desde-aptana-utilizando-el-controlador-jdbc-de-jtds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conexion-a-mssql-desde-aptana-utilizando-el-controlador-jdbc-de-jtds</link> <comments>http://blog.jorgeivanmeza.com/2009/02/conexion-a-mssql-desde-aptana-utilizando-el-controlador-jdbc-de-jtds/#comments</comments> <pubDate>Thu, 26 Feb 2009 22:52:38 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[Aptana]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[JDBC]]></category> <category><![CDATA[jTDS]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MSSQL]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1459</guid> <description><![CDATA[De la misma manera como fue posible realizar la conexión del Database Explorer de Aptana con MSSQL utilizando el controlador JDBC provisto por Microsoft, es posible utilizar el controlador JDBC provisto por el proyecto jTDS.  En algunos foros he encontrado &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/02/conexion-a-mssql-desde-aptana-utilizando-el-controlador-jdbc-de-jtds/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>De la misma manera como fue posible realizar la <a
href="http://www.jorgeivanmeza.com/blog/2008/11/26/conexion-a-mssql-desde-aptana/" target="_blank">conexión del <strong>Database Explorer</strong> de <strong>Aptana</strong> con MSSQL utilizando el controlador JDBC provisto por Microsoft</a>, es posible utilizar el controlador JDBC provisto por el <a
href="http://jtds.sourceforge.net/" target="_blank">proyecto jTDS</a>.  En algunos foros he encontrado que utilizando este controlador se pueden evitar algunos problemas que suceden en determinadas situaciones con el otro controlador.</p><p>El procedimiento es el mismo al mencionado en el <a
href="http://www.jorgeivanmeza.com/blog/2008/11/26/conexion-a-mssql-desde-aptana/" target="_blank">artículo anterior</a> con las siguientes modificaciones.</p><ul><li>Descargar el controlador jTDS del <a
href="http://sourceforge.net/project/showfiles.php?group_id=33291" target="_blank">sitio de SourceForge</a> del proyecto.</li><li>En el <strong>Database Explorer</strong> crear el controlador <span
style="font-family: courier new,courier;">MSSQL jTDS</span> (o como quiera llamarlo) con la siguiente especificación.<ul><li><strong>Add File</strong>: <span
style="font-family: courier new,courier;">&lt;ruta&gt;/jtds-1.2.2.jar</span>.</li><li><strong>Driver</strong>: <span
style="font-family: courier new,courier;">net.sourceforge.jtds.jdbc.Driver</span>.</li><li><strong>Type</strong>: <span
style="font-family: courier new,courier;">Type 4</span>.</li></ul></li><li><strong>Connection String</strong>: <span
style="font-family: courier new,courier;">jdbc:jtds:sqlserver://&lt;HOST&gt;:&lt;PORT&gt;/&lt;DBNAME&gt;</span>.  El puerto por defecto es el <span
style="font-family: courier new,courier;">1433</span>.</li><li>El <strong>User</strong> y <strong>Password</strong> corresponden con el nombre de usuario y la contraseña de conexión.</li><li>El <strong>Default Schema</strong> corresponde con el nombre de la base de datos que se va a acceder.</li></ul><h3>Enlaces.</h3><ul><li>Aptana Studio.<br
/> <a
href="http://www.aptana.com/studio" target="_blank">http://www.aptana.com/studio</a></li><li>The jTDS Project.<br
/> <a
href="http://jtds.sourceforge.net/" target="_blank">http://jtds.sourceforge.net/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/02/conexion-a-mssql-desde-aptana-utilizando-el-controlador-jdbc-de-jtds/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Luchando contra el tipo fecha de SQL Server</title><link>http://blog.jorgeivanmeza.com/2009/02/luchando-contra-el-tipo-fecha-de-sql-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=luchando-contra-el-tipo-fecha-de-sql-server</link> <comments>http://blog.jorgeivanmeza.com/2009/02/luchando-contra-el-tipo-fecha-de-sql-server/#comments</comments> <pubDate>Fri, 13 Feb 2009 21:01:25 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[FreeTDS]]></category> <category><![CDATA[Kohana]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MSSQL]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1355</guid> <description><![CDATA[Tras un nuevo round de lucha contra las fechas de MSSQL he salido por fin victorioso y he aprendido algunas cosas cuyas conclusiones voy a documentar a continuación para la posteridad. MSSQL apesta.  Le faltan muchas cosas que acostumbra uno &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/02/luchando-contra-el-tipo-fecha-de-sql-server/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Tras un nuevo <em>round</em> de lucha contra las fechas de MSSQL he salido por fin victorioso y he aprendido algunas cosas cuyas conclusiones voy a documentar a continuación para la posteridad.</p><p>MSSQL apesta.  Le faltan muchas cosas que acostumbra uno a utilizar con bases de datos mas sencillas como MySQL.  Por ejemplo: cómo hago un <span
style="font-family: courier new,courier;">ENUM</span> ?  como hago un <span
style="font-family: courier new,courier;">DATETIME</span> ? como hago &#8230;?</p><p>La arquitectura de la conexión es un cuento un poco mas largo.  El servidor de base de datos es un Windows XP con un MSSQL 7.0 mientras que el servidor web es un Linux OpenSuse que conecta el PHP5 al motor de base de datos a través de <a
href="http://www.freetds.org/" target="_blank">FreeTDS</a>.</p><p>Desde hace unos días para acá el formato de fecha se modificó mágicamente, ya no aparecía <span
style="font-family: courier new,courier;">13/02/2009 13:13:31</span> (DMY) sino <span
style="font-family: courier new,courier;">feb 13 2009 13:13</span>.  Este también fue el primer problema que tuve alguna vez con MSSQL al rededor del 2002.  En esa época lo solucioné con el modificador <span
style="font-family: courier new,courier;"><a
href="http://www.jorgeivanmeza.com/blog/2008/04/03/acceso-a-mssql-server-desde-php-en-un-servidor-linux/" target="_blank">SET DATEFORMAT</a></span>, sin embargo esta vez no fue suficiente.</p><p>Descubrí que el <span
style="font-family: courier new,courier;">SET DATEFORMAT</span> sólo es útil para el ingreso de datos, es decir, le indica al motor como es el formato de las fechas que le enviamos a través de un <span
style="font-family: courier new,courier;">INSERT</span> o un <span
style="font-family: courier new,courier;">UPDATE</span>, pero no dice nada acerca de como se nos presentan los datos.  Lo mismo sucede con el idioma (<span
style="font-family: courier new,courier;">SET LANGUAGE</span>) que es mas general aún que el formato de fecha y lo incluye.</p><p>Después de muchos experimentos y pruebas encontré que la presentación de las fechas podía ser manipulada desde el servidor Linux, que en este caso actua como cliente de la base de datos mediante la configureción del FreeTDS.</p><p>El el archivo <span
style="font-family: courier new,courier;">/usr/local/freetds/etc/<a
href="http://www.freetds.org/userguide/locales.htm" target="_blank">locales.conf</a></span> es necesario modificar la sección <span
style="font-family: courier new,courier;">[default]</span> para incluír la siguiente línea especificando el formato de las fechas.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">date format = %d/%m/%Y %H:%M:%S</span></p><p>El formato de los campos es el mismo de <a
href="http://www.php.net/strftime" target="_blank">strftime</a>.  Con el formato propuesto la fecha aparece como <span
style="font-family: courier new,courier;">DD/MM/AAAA HH:MM:SS</span> utilizando el horario militar.  Es necesario reiniciar Apache para que el cambio sea tomado en cuenta.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">$ sudo service apache2 restart</span></p><p>Como mencioné anteriormente, la modificación del <span
style="font-family: courier new,courier;">DATEFORMAT</span> o en su defecto del <span
style="font-family: courier new,courier;">LANGUAGE</span>, nos permiten garantizar que la aplicación reciba correctamente los datos tipos fecha de manera independiente a como fue instalado el MSSQL o se haya realizado la configuración regional del servidor.  Para esto terminé agregando las siguientes líneas al constructor de la superclase de los controladores de <a
href="http://kohanaphp.com/" target="_blank">Kohana</a>, es decir, en un sitio donde se pueda garantizar que siempre se ejecuta antes que cualquier otro código del sistema suceptible de acceder a la base de datos.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">$this -&gt; db = Database::instance();<br
/> $this -&gt; db -&gt; query('SET LANGUAGE spanish');<br
/> // $this -&gt; db-&gt;query('SET DATEFORMAT dmy');</span></p><p>En este punto actualizo también la información de localización y la zona horaria para que los mensajes del sistema y la hora del sistema sean las de mi región.  Muy útil, como se había <a
href="http://www.jorgeivanmeza.com/blog/2008/11/28/cambio-de-locale-y-zona-horaria-en-php/" target="_blank">mencionado anteriormente</a>, cuando se comparte el servidor de <em>hosting</em>.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">setlocale(LC_ALL, "es_CO");<br
/> putenv("TZ=America/Bogota");</span></p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/02/luchando-contra-el-tipo-fecha-de-sql-server/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Generando diagramas entidad-relación con SchemaSpy</title><link>http://blog.jorgeivanmeza.com/2009/02/generando-diagramas-entidad-relacion-con-schemaspy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=generando-diagramas-entidad-relacion-con-schemaspy</link> <comments>http://blog.jorgeivanmeza.com/2009/02/generando-diagramas-entidad-relacion-con-schemaspy/#comments</comments> <pubDate>Fri, 13 Feb 2009 16:57:03 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[Java]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1350</guid> <description><![CDATA[Introducción. Dando vueltas el mes pasado por los lados de SourceForge encontré esta aplicación y no había tenido tiempo de probarla hasta el día de hoy.  Para mi satisfacción resultó ser muy interesante.  Es una aplicación desarrollada en Java que &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/02/generando-diagramas-entidad-relacion-con-schemaspy/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h3>Introducción.</h3><div
id="attachment_1351" class="wp-caption aligncenter" style="width: 435px"><a
href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2009/02/screenshot1.png"><img
class="size-full wp-image-1351" title="SchemaSpy screenshot - All relationships" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2009/02/screenshot1.png" alt="SchemaSpy screenshot - All relationships" width="425" height="364" /></a><p
class="wp-caption-text">SchemaSpy screenshot - All relationships</p></div><p
style="text-align: justify;">Dando vueltas el mes pasado por los lados de <a
href="http://www.sourceforge.net/" target="_blank">SourceForge</a> encontré esta aplicación y no había tenido tiempo de probarla hasta el día de hoy.  Para mi satisfacción resultó ser muy interesante.  Es una aplicación desarrollada en Java que genera el diagrama Entidad-Relación de una base de datos y otras cositas, como sus desarrolladores la llaman, un navegador gráfico de esquemas de metadatos de una base de datos.  Puede acceder a cualquier motor de base de datos desde que se cuente con su correspondiente <em>driver</em> JDBC.</p><h3 style="text-align: justify;">Requerimientos.</h3><p
style="text-align: justify;">Para utilizar la aplicación se requiere lo siguiente.</p><ol><li>Contar con <a
href="http://java.sun.com/" target="_blank">Java5</a> o superior.</li><li>Descargar la <a
href="http://sourceforge.net/project/showfiles.php?group_id=137197" target="_blank">última distribución</a> de <a
href="http://schemaspy.sourceforge.net/" target="_blank">SchemSpy</a>.</li><li>Obtener el <em>driver</em> correspondiente a su base de datos.<ul><li><a
href="http://dev.mysql.com/downloads/connector/j/" target="_blank">MySQL Connector/J</a>.</li><li><a
href="http://msdn.microsoft.com/en-us/data/aa937724.aspx" target="_blank">Microsoft SQL Server 2005 JDBC Driver</a>.</li><li><a
href="http://jtds.sourceforge.net/" target="_blank">jTDS driver for Microsoft SQL Server</a>.</li><li><a
href="http://jdbc.postgresql.org/" target="_blank">PostgreSQL JDBC Driver</a>.</li><li><a
href="http://zentus.com/sqlitejdbc/" target="_blank">SQLite JDBC</a>.</li></ul></li></ol><p
style="text-align: justify;">Para realizar la conexión con una base de datos Microsoft SQL Server recomiendo utilizar el <em>driver</em> de jTDS ya que el proporcionado por Microsoft me generó problemas del siguiente estilo.</p><pre style="margin: 0em;"><span style="font-family: courier new,courier;">Driver version is x.x.xxx.xxx
com.microsoft.sqlserver.jdbc.SQLServerException: The "variant" data type is not supported.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
        at com.microsoft.sqlserver.jdbc.TypeInfo.init(Unknown Source)
        at com.microsoft.sqlserver.jdbc.StreamColumns.processBytes(Unknown Source)
        at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Unknown Source)
        at one_con.main(one_con.java:26)</span></pre><h3 style="text-align: justify;">Instalación.</h3><p
style="text-align: justify;">La instalación de la aplicación no excede el descomprimir los paquetes descargados, sin embargo su ubicación es importante.  Para esto utilicé la siguiente estructura de directorios.</p><ol><li><span
style="font-family: courier new,courier;">~/Applications/SchemaSpy</span> &#8211; directorio de la aplicación.</li><li><span
style="font-family: courier new,courier;">~/Applications/SchemaSpy/drivers</span> &#8211; controladores de acceso a la base de datos.</li></ol><p
style="text-align: justify;">En la carpeta [1] se ubica el JAR de la aplicación: <span
style="font-family: courier new,courier;">schemaSpy_4.1.1.jar</span>.</p><p
style="text-align: justify;">En la carpeta [2] se ubican los JAR de los <em>drivers</em> JDBC: <span
style="font-family: courier new,courier;">mysql-connector-java-5.1.7-bin.jar</span> para MySQL y <span
style="font-family: courier new,courier;">jtds-1.2.2.jar</span> para MSSQL.</p><h3 style="text-align: justify;">Ejecución.</h3><p
style="text-align: justify;">Para esto acostumbro a crear <em>scripts</em> del <em>shell</em> que ubico en <span
style="font-family: courier new,courier;">~/Applications</span>, sin embargo lo importante es su contenido que puede invocarse directamente desde la línea de comando.</p><p
style="text-align: justify;">Para MySQL.</p><p
style="text-align: justify;"><span
style="font-family: courier new,courier;">$ java -jar SchemaSpy/schemaSpy_4.1.1.jar -dp ~/Applications/SchemaSpy/drivers/mysql-connector-java-5.1.7-bin.jar -t mysql -host <strong>HOST</strong> -db <strong>DBNAME</strong> -u <strong>DBUSER</strong> -p <strong>DBPASS</strong> -o <strong>OUTDIR</strong></span></p><p
style="text-align: justify;">Para MSSQL.</p><p
style="text-align: justify;"><span
style="font-family: courier new,courier;">$ java -jar SchemaSpy/schemaSpy_4.1.1.jar -dp ~/Applications/SchemaSpy/drivers/jtds-1.2.2.jar -t mssql-jtds -host <strong>HOST</strong> -port <strong>PORT</strong> -db <strong>DBNAME</strong> -s <strong>DBSCHEMA</strong> -u <strong>DBUSER</strong> -p <strong>DBPASS</strong> -o <strong>OUTDIR</strong></span></p><p
style="text-align: justify;">Por supuesto se deben reemplazar apropiadamente las siguientes variables.</p><ul><li><strong>HOST</strong> &#8211; servidor de base de datos.</li><li><strong>PORT</strong> (requerido por MSSQL) &#8211; puerto de conexión al motor de base de datos.  El puerto por defecto de MSSQL es el 1433.</li><li><strong>DBNAME</strong> &#8211; nombre de la base de datos.</li><li><strong>DBSCHEMA</strong> (sólo con MSSQL) &#8211; esquema de la base de datos.  Utilizo <span
style="font-family: courier new,courier;">dbo</span>.</li><li><strong>DBUSER</strong> &#8211; usuario de la base de datos.</li><li><strong>DBPASS</strong> &#8211; contraseña del usuario $DBUSER.</li><li><strong>OUTDIR</strong> &#8211; ubicación donde la aplicación generará los archivos resultantes.</li></ul><p>Los comandos utilizan la sintaxis del <em>shell</em> de Linux, para utilizarlos desde Windows adapte las rutas según su conveniencia, recuerde modificar los <em>slashes</em> (<span
style="font-family: courier new,courier;">/</span>) por <em>backslashes</em> (<span
style="font-family: courier new,courier;">\</span>).</p><h3>Nota acerca de la generación de gráficos.</h3><p>Para que se generen correctamente los gráficos de los diagramas Entidad-Relación es necesario que se cuente previamente con la librería <a
href="http://www.graphviz.org/" target="_blank">Graphviz</a>.  Para instalar esta librería desde Ubuntu Linux sólo es necesario ejecutar el siguiente comando.</p><p><span
style="font-family: courier new,courier;">$ sudo apt-get install graphviz</span></p><h3 style="text-align: justify;">Conclusiones.</h3><p
style="text-align: justify;">Muy intersante esta aplicación, me gustó bastante.  Genera una buena documentación de la base de datos en formato HTML con varias secciones que se pueden navegar entre ellas.  Incluye varias perspectivas de la misma información que facilita su documentación.  Incluso siendo una presentación local, incluye <a
href="http://jquery.com/" target="_blank">JQuery</a> para mejorar la usabilidad de los reportes.</p><h3 style="text-align: justify;">Enlaces.</h3><ul><li>SchemaSpy.<br
/> <a
href="http://schemaspy.sourceforge.net/" target="_blank">http://schemaspy.sourceforge.net/</a></li><li>Demostración de SchemaSpy.<br
/> <a
href="http://schemaspy.sourceforge.net/sample/" target="_blank">http://schemaspy.sourceforge.net/sample/</a></li><li>Java.<br
/> <a
href="http://java.sun.com/" target="_blank">http://java.sun.com/</a></li><li>MySQL Connector/J.<br
/> <a
href="http://dev.mysql.com/downloads/connector/j/" target="_blank">http://dev.mysql.com/downloads/connector/j/</a></li><li>Microsoft SQL Server 2005 JDBC driver.<br
/> <a
href="http://msdn.microsoft.com/en-us/data/aa937724.aspx" target="_blank">http://msdn.microsoft.com/en-us/data/aa937724.aspx</a></li><li>The jTDS project.<br
/> <a
href="http://jtds.sourceforge.net/" target="_blank">http://jtds.sourceforge.net/</a></li><li>PostgreSQL JDBC driver.<br
/> <a
href="http://jdbc.postgresql.org/" target="_blank">http://jdbc.postgresql.org/</a></li><li>SQLite JDBC.<br
/> <a
href="http://zentus.com/sqlitejdbc/" target="_blank">http://zentus.com/sqlitejdbc/</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/02/generando-diagramas-entidad-relacion-con-schemaspy/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Conexión a MSSQL desde Aptana</title><link>http://blog.jorgeivanmeza.com/2008/11/conexion-a-mssql-desde-aptana/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conexion-a-mssql-desde-aptana</link> <comments>http://blog.jorgeivanmeza.com/2008/11/conexion-a-mssql-desde-aptana/#comments</comments> <pubDate>Wed, 26 Nov 2008 14:11:53 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[Aptana]]></category> <category><![CDATA[JDBC]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MSSQL]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=929</guid> <description><![CDATA[Probando una nueva alternativa para tener un cliente a MSSQL desde Linux he decidido probar el cliente de bases de datos JDBC de Aptana Studio con buenos resultados. Para su configuración se deben seguir estos pasos. Tener el driver JDBC &#8230; <a
href="http://blog.jorgeivanmeza.com/2008/11/conexion-a-mssql-desde-aptana/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<div
id="attachment_931" class="wp-caption aligncenter" style="width: 310px"><a
href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/11/screenshot.png"><img
class="size-medium wp-image-931" title="screenshot" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/11/screenshot-300x227.png" alt="Aptana's Database Manager" width="300" height="227" /></a><p
class="wp-caption-text">Aptana&#39;s Database Manager</p></div><p>Probando una nueva alternativa para tener un <a
href="http://www.jorgeivanmeza.com/blog/2008/09/02/cliente-para-mssql-desde-linux/" target="_blank">cliente a MSSQL desde Linux</a> he decidido probar el cliente de bases de datos JDBC de <a
href="http://www.aptana.com/studio" target="_blank">Aptana Studio</a> con buenos resultados.</p><p>Para su configuración se deben seguir estos pasos.</p><ol><li>Tener el driver <a
href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/11/sqljdbc.jar">JDBC de MSSQL</a> en algún lugar del disco duro.</li><li>Abrir la perspectiva de <strong>Database Explorer</strong>.  Para hacer esto seleccione los menúes <strong>Window &gt; Open Perspective &gt; Other &#8230; &gt; Database Explorer</strong>.</li><li>Haga click derecho sobre la rama <strong>Databases</strong> ubicada al lado izquierdo y seleccione la opción <strong>Add</strong>.</li><li>Elija el <strong>nombre de la conexión</strong> y presione el botón <strong>Next</strong>.</li><li>En los <strong>detalles de conexión</strong> presione el botón <strong>Add</strong>.<ol><li>Especifique un nombre para el controlador.</li><li>Presione el botón <strong>Add File</strong> y seleccione el archivo del driver JDBC de MSSQL establecido anteriormente.</li><li>En la <strong>información de conexión</strong> seleccione el driver encontrado.</li><li>Presione el botón <strong>OK</strong>.</li></ol></li><li>Adecúe la cadena de conexión según sus necesidades: <span
style="font-family: courier new,courier;">jdbc:sqlserver://&lt;HOST&gt;:1433;DatabaseName=&lt;DBNAME&gt;</span></li><li>Especifique el nombre de usuario de conexión a la base de datos (<strong>User</strong>).</li><li>Especifique la contraseña del usuario de conexión a la base de datos (<strong>Password</strong>).</li><li>Presione el botón <strong>Test Connection</strong> para verificar la información de conexión.  Realice los ajustes necesarios en caso de presentarse problemas.</li><li>Presione el botón <strong>Finish</strong> para terminar la configuración.</li></ol> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2008/11/conexion-a-mssql-desde-aptana/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Probando Firebird Embedded con C#</title><link>http://blog.jorgeivanmeza.com/2008/10/probando-firebird-embedded-con-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=probando-firebird-embedded-con-c</link> <comments>http://blog.jorgeivanmeza.com/2008/10/probando-firebird-embedded-con-c/#comments</comments> <pubDate>Tue, 14 Oct 2008 05:32:26 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[C#]]></category> <category><![CDATA[Embedded]]></category> <category><![CDATA[Firebird]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=809</guid> <description><![CDATA[Desde hace mucho tiempo tengo planeado desarrollar una aplicación cuya versión 0.1 desarrollé hace ya varios años en C++ y Fox Toolkit, perdida ya en el museo del olvido. La aplicación es muy sencilla.  Inicialmente son dos módulos pero la &#8230; <a
href="http://blog.jorgeivanmeza.com/2008/10/probando-firebird-embedded-con-c/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Desde hace mucho tiempo tengo planeado desarrollar una aplicación cuya versión 0.1 desarrollé hace ya varios años en C++ y <a
href="http://www.fox-toolkit.org/" target="_blank">Fox Toolkit</a>, perdida ya en el museo del olvido.</p><p>La aplicación es muy sencilla.  Inicialmente son dos módulos pero la idea es agregarle después algunos otros.  El problema es que cada vez que me siento a pensar en ella termino haciendo un diseño complejo y lleno de cositas que me pondrían a estudiar.  Esto no sería malo sino fuera porque de esta manera se va a terminar cuando el tiempo tienda a infinito.</p><p>Por esto he cambiado mi plan.  Voy a hacer una aplicación pequeña y la voy a ir hacer creciendo, aunque esto signifique que alguna versión deba volverla a hacer desde <em>scratch</em> (cero).</p><p>Con respecto al lenguaje de programación había elegido Java para retomar mi estudio pero en medio de la <em>moda </em>local y temporal de .NET he decidido empezar a implementar en C#.</p><p>El primer reto a resolver es la escogencia de un <em>motor</em> de base de datos ya que la aplicación va a ser pequeña, me interesa que se pueda ejecutar en equipos no necesariamente robustos, no quiero despilfarrar recursos y quiero que la instalación y copia de seguridad sean fáciles: sólo copiar archivos.  Por esto he pensado en utilizar una base de datos basada en archivos o <em>embedded</em>.</p><p>Para Java hay varias de donde escoger, pero para .NET la oferta, al parecer, no es tan amplia.  Encontré <a
href="http://www.sqlite.org/" target="_blank">SQLite</a> (ya lo he utilizado varias veces pero he tenido problemas con bloqueos) <a
href="http://www.vistadb.net/" target="_blank">VistaDB</a> (comercial, no me sirve) y a <a
href="http://www.codeplex.com/sharphsql" target="_blank">SharpHSQL</a> hermanita de <a
href="http://hsqldb.org/" target="_blank">HSQL</a> (Java) para .NET, sin embargo no estoy seguro de cuan activo está ese proyecto.  Las mejores opciones por ahora parecen ser <a
href="http://www.firebirdsql.org/manual/fbmetasecur-embedded.html" target="_blank">FireBird Embedded</a> y <a
href="http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx" target="_blank">SQL Server Compact</a>, ambas prometen muchas cosas, incluyendo un bajo <em>footprint</em> ~ 2MB.</p><p>Para la primera prueba elegí a <a
href="http://firebirdsql.org/" target="_blank">FireBird</a> ya que esa fue la primera base de datos que utilicé en un proyecto después de graduado como ingeniero y me unen a ella emotivos recuerdos <img
src='http://blog.jorgeivanmeza.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h3>Instalación.</h3><p>Para desarrollar una aplicación con FireBird inmerso se requieren dos recursos.</p><ul><li>La <a
href="http://firebirdsql.org/index.php?op=files" target="_blank">distribución <em>embed</em></a>.  Para este caso particular estoy utilizando la versión <span
style="font-family: courier new,courier;">2.1.1.17910-0_Win32</span>.</li><li>El <a
href="http://firebirdsql.org/dotnetfirebird/download/index.html" target="_blank">FirebirdClient for .NET</a> que es el <em>Data Provider</em>.  Para esta prueba, la versión <span
style="font-family: courier new,courier;">2.0.1</span>.</li></ul><p>El FirebirdClient se instala como cualquier aplicación Windows sin ninguna opción específica.  Me imagino que habrá que instalarlo también en los clientes cuando se haga el despliegue (por confirmar).</p><p>La distribución se debe descomprimir y mover los siguientes archivo al mismo directorio donde se encontrará el archivo ejecutable de la aplicación: <span
style="font-family: courier new,courier;">&lt;ruta&gt;\bin\Debug</span> (desarrollo) o <span
style="font-family: courier new,courier;">&lt;ruta&gt;\bin\Release</span> (producción).</p><ul><li><span
style="text-decoration: underline;"><strong><span
style="font-family: courier new,courier;">fbembed.dll</span></strong></span></li><li><span
style="text-decoration: underline;"><strong><span
style="font-family: courier new,courier;">icudt30.dll</span></strong></span></li><li><span
style="font-family: courier new,courier;">icuin30.dll</span></li><li><span
style="font-family: courier new,courier;">icuuc30.dll</span></li><li><span
style="font-family: courier new,courier;">firebird.conf</span></li><li><span
style="font-family: courier new,courier;">firebird.msg</span></li></ul><p>Para la implementación del proyecto estoy utilizando Visual C# Express 2008 y en él es necesario incluír la referencia a <span
style="font-family: courier new,courier;">FirebirdSql.Data.FirebirdClient</span> instalada con el <em>Data Provider</em>.</p><h3>Creación de la cadena de conexión.</h3><p>Es fácil construír la <em>ConnectionString</em> con la ayuda del <span
style="font-family: courier new,courier;">FbConnectionStringBuilder</span> de la siguiente manera.</p><pre>            FbConnectionStringBuilder csb = new FbConnectionStringBuilder();
            csb.ServerType = FbServerType.Embedded;
            csb.UserID     = "SYSDBA";
            csb.Password   = "masterkey";
            csb.Dialect    = 3;
            csb.Database   = @"data\database.fdb";
            csb.Charset    = "UTF8";</pre><p>Sólo los parámetros ServerType y Database son obligatorios, los demás son opcionales y puede encontrarse mayor información sobre ellos en <a
href="http://www.firebirdsql.org/dotnetfirebird/connection-string-parameters.html" target="_blank">ConectionStringParameters</a>, también se puede encontrar mayor información acerca de los <span
style="font-family: courier new,courier;">Charset</span> disponibles en <a
href="http://www.destructor.de/firebird/charsets.htm" target="_blank">Firebird Character Sets and Collations</a>.</p><p>La ubicación de la base de datos (parámetro <span
style="font-family: courier new,courier;">Database</span>) es relativo a la ubicación del archivo <span
style="font-family: courier new,courier;">fembed.dll</span>, es decir, al ejecutable de la aplicación.</p><h3>Creación de la base de datos.</h3><p>Desde la misma aplicación es posible crear la base de datos (manera <a
href="http://www.rae2.es/programatica" target="_blank">programática</a>) a la cual hace referencia la cadena de conexión.</p><pre>           FbConnection.CreateDatabase(csb.ToString());</pre><p>Debe tenerse en cuenta que la ruta de directorios bajo la cual se ubicará la base de datos ya debe existir previa la creación del archivo de datos, de lo contrario la creación fallará.</p><h3>Conexión a la base de datos.</h3><pre>          con = new FbConnection(csb.ToString());
          con.Open();</pre><h3>Verificación del estado de la conexión.</h3><pre>            if (con.State == System.Data.ConnectionState.Open)
                Console.WriteLine("Established");
            else
                Console.WriteLine("NOT established");</pre><p>Otros posibles estados definidos por <span
style="font-family: courier new,courier;">ConnectionState </span>son <span
style="font-family: courier new,courier;">Broken</span>, <span
style="font-family: courier new,courier;">Closed</span>, <span
style="font-family: courier new,courier;">Connecting</span>, <span
style="font-family: courier new,courier;">Executing </span>y <span
style="font-family: courier new,courier;">Fetching</span>.</p><h3>Verificación de la existencia de una tabla.</h3><pre>            FbCommand cmd = new FbCommand("SELECT COUNT(RDB$RELATION_NAME)" +
                                          "FROM RDB$RELATIONS WHERE (RDB$RELATION_NAME = 'users')" +
                                          "AND RDB$VIEW_SOURCE IS NULL", con);
            int tableCount = (int)cmd.ExecuteScalar();
            if (tableCount == 0)
                Console.WriteLine("No");
            else
                Console.WriteLine("Yes");</pre><p>Verifica la existencia o no de la tabla <span
style="font-family: courier new,courier;">users</span> en la base de datos conectada.</p><h3>Ejecución de un INSERT.</h3><pre>            String sql = "INSERT INTO \"users\" VALUES ('" + user[0] + "', '" + user[1] + "')";
            cmd = new FbCommand(sql, con);
            cmd.ExecuteNonQuery();</pre><h3>Ejecución de una consulta de datos.</h3><pre>            String select = "SELECT username, name FROM \"users\"";
            cmd = new FbCommand(select, con);
            FbDataReader reader = cmd.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    String username = reader.GetString(0).Trim();
                    String name = reader.GetString(1).Trim();
                    Console.WriteLine("\t{'" + username + "', '" + name + "'}");
                }
            }
            finally
            {
                reader.Close();
            }</pre><h3>Finalización de la conexión.</h3><pre>            con.Close();</pre><h3>Conclusiones.</h3><p>Esta primera aproximación fue sencilla, práctica y funcional.  Se encuentra buena documentación del motor de base de datos y movimiento en los foros en su respecto.  A pesar de que, al menos por estas latitudes, no es muy utilizada Firebird parece ser que en otras partes si lo es.</p><p>Los archivos requeridos (<em>dlls</em>) ocupan 2.87MB mientras que todos los archivos, incluyendo los opcionales, ocupan 4.94MB.</p><p>Voy a revisar también cuan viable es utilizar el SQL Server Compact, sin embargo en los últimos días que hemos tenido un poco de contacto con SQL Server han aparecido con él algunos detalles desagradables que desde mi punto de vista de conocer poco acerca de este motor, me desaniman de utilizarlo.  Ya veremos.</p><p>Enlace: <a
href="http://demo.jorgeivanmeza.com/NET/FirebirdEmbeddedDemo/0.1/FirebirdEmbeddedDemo1.zip" target="_blank">Aplicación de prueba &#8211; Firebird Embedded Demo 0.1</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2008/10/probando-firebird-embedded-con-c/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
