Mostrando las entradas con la etiqueta mssql. Mostrar todas las entradas
Mostrando las entradas con la etiqueta mssql. Mostrar todas las entradas

lunes, junio 08, 2009

LTSP & Ruby on Rails en Concordia

Hola a todos!

Del 1 al 5 de junio, en el marco de las VIII JORNADAS NACIONALES DE ADMINISTRACIÓN E INFORMÁTICA, estuve invitado a dictar un Seminario de 4 días sobre Ruby on Rails, y una conferencia sobre LTSP - Thinstation, en la Facultad de Ciencias de la Administración de la Universidad Nacional de Entre Ríos de la ciudad de Concordia - Entre Ríos.

Debo agradecer la organización de todo el cuerpo de Redes y Extensión Académica, y en especial la de Cristian Pacifico. Bárbaros los servicios que pusieron a mi disposición: desde un Moodle (campus.uner.edu.ar), pasando por el laboratorio, hasta el hotel, impecable.

Me sorprendió lo linda que mantienen la ciudad de Concordia, lo calido de su gente, la calidad de los alumnos, y la excelente cocina local. Tambien son muy recomendables las termas: no hace falta viajar hasta Federación. Podemos quedar blanditos y rosados como la pantera rosa, a unos pocos kilómetros de la ciudad.







Galería completa: http://www.bunker.org.ar/incubadora/fotos/album/

El temario de ROR consistió en lo típico:
  • 2 días de introducción a Ruby, con ejemplos accesando MySQL, MSSQL, y bindeando ventanas con wxRuby.
  • 2 dias de taller con Rails v2: migraciones, SQLite (que cada día me gusta mas), scaffold, validaciones, layouts, css, partials, ORM entre varias tablas, uso de la console, etc.

Me vino bien armar la conferencia para actualizarme respecto de varios cambios que han habido en Rails 2.

Este verano espero volver a esa linda ciudad donde hice muy buenos amigos.

Aquí todo el material disponible: fuentes, presentaciones, apuntes, etc.

http://bunker.org.ar/incubadora/ROR Concordia 2009/

domingo, mayo 17, 2009

Usar Rails con MSSQL

Este es un documento que puede servir para quienes utilicen Rails, bajo Linux o bajo Windows XP/2003 Server, y accedan habitualmente en forma remota a MSSQL.

Lo escribí hace 2 años y acabo de lavarle la cara con motivo de un Seminario que tengo que dar el próximo mes.

http://www.bunker.org.ar/incubadora/RailsConMSSQLServer.odt (para Openoffice)

Que aproveche.

jueves, junio 12, 2008

Acceso a MSSQL desde Python / PHP


Sistemas operativos: Linux y Windows

Notas y posible apunte de alumnos

Comic: http://the-geek.org/xkcd-es/strips/python/



Comprobado en MSSQL 2000 Enterprise en ingles, con SP2 (en inglés también). La versión en español presentaba problemas aleatorios de acceso al puerto 1433, y no traía la simpática base Northwind.

Notas importantes

Importación de base anterior, en MySQL:
  • http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/mysql.mspx

Codificación

El primer cabezazo serio trabajando con Python/PHP y contra MSSQL, sobre Windows / Linux / BSD, seguramente serán las codificaciones. En términos generales:

(Fixme):
  • Las ventanas trabajan en UTF-8
  • Las consolas Linux (actuales), en UTF-8
  • Las consolas BSD, en ISO8859
  • MSDOS, en ASCII
  • Las bases de datos, en ISOnnnnn o tambien, latin1

He dejado varios vínculos útiles en http://del.icio.us/karancho/utf-8

#Ejemplo con datos de MSSQL, base Northwind
print unicode(oRS.Fields.Item("ShipAddress"))

#Ejemplo decodeando un valor dentro de un array, procedente de MySQL, via ADODB, en
#latin1 (ISO8859-15, creo), y repleto de acentos y caracteres raros
print arreglo['curso'].decode('latin1')

#Ejemplo para cargar un wx.grid, en una posición determinada
nombre = arr['nombre'].decode('latin1')
grid.SetCellValue(i, 2, nombre)

Mapa

MSSQL Desde Linux
Dentro de Windows
Python
Ejemplo 2
Ejemplo 3
PHP
Ejemplo 1
Idem Ejemplo 1



Ejemplo 1: Cliente: Linux
+ PHP
-> Destino: Windows con MSSQL


  • Paquetes necesarios en Ubuntu: php5-adodb y php5-sybase
  • En Windows, con los componentes ADODB que trae XAMPP es suficiente.
  • ¡No copiar código desde aquí!, hacerlo desde http://pastebin.lugmen.org.ar/4164


<?php
print "
<HEAD>
<!-- <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> -->

<!-- Codificaciones debido a los acentos procedentes de SQL Server -->
<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'/>
<!-- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/> -->

</HEAD>
";


$resource=mssql_connect("192.168.1.151","sa","coso");
mssql_select_db("Northwind",$resource);

$sql="SELECT * FROM Orders";

$respuesta=mssql_query($sql,$resource);

while ($fila = mssql_fetch_object($respuesta) ) echo "<p>".$fila->ShipCity;

?>


Ejemplo 2: Cliente: Linux + Python-> Destino: Windows con MSSQL


Ejemplo y configuración:

  • http://pymssql.sourceforge.net/example_pymssql.html

Editores: SPE, Geany, Gvim

Ejemplo de Código

import pymssql

con = pymssql.connect(host='192.168.1.151',user='sa',
password='coso',database='Northwind')

cur = con.cursor()

query="select * from Orders;"
for x in range(10):
cur.execute(query)

while 1:
print "n"
print cur.fetchall()
if 0 == cur.nextset():
break


Ejemplo 3: Computadora corriendo Windows + Python + MSSQL
(con ADO)



  • Python for Windows Extensions: http://starship.python.net/crew/mhammond/
  • Aunque yo usé: http://sourceforge.net/projects/pywin32/
  • Estas pruebas las he realizado con MSSQL 2000. Con MSSQL 2005, al poderse usar ODBC sobre SQL server, hay una manera mas simple, documentada en http://www.time-travellers.org/shane/howtos/MS-SQL-Express-Python-HOWTO.html
  • Ejemplo y configuración: http://www.mayukhbose.com/python/ado/ado-python.php

Ejemplo de Código

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# First import two useful modules
from win32com.client import Dispatch
from adoconstants import *

# Create the ADO Connection object via COM.
oConn = Dispatch('ADODB.Connection')

# Now set the connection properties via the ConnectionString
# We're connecting to a SQL Server on 192.168.1.100 using OLEDB.
oConn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=OREGANOOREGANO;" + "uid=sa;pwd=coso;database=Northwind"

oConn.Open()

# Now create a RecordSet object and open a table
oRS = Dispatch('ADODB.RecordSet')
oRS.ActiveConnection = oConn # Set the recordset to connect thru oConn
oRS.Open("Orders")

#print oRS.Fields.Item(0), oRS.Fields(1)

while not oRS.EOF:
#El siguiente print requiere de convertir los datos procedentes de SQL, en ISO, hacia unicode
#Se agradece el comentario de :
http://sebsauvage.net/python/snyppets/#unicode
print unicode(oRS.Fields.Item("ShipAddress"))
oRS.MoveNext()


Espero que sirva :)