Casi a punto de asistir a la liberación de lenny (la versión 5.0 de Debian), seguimos viendo que con etch, aún, tenemos lo suficiente para tirar perfectamente, y sin agregar paquetes de backport.
En este caso, voy a explicar como instalar y usar SQL Server vía ODBC desde cualquier aplicación en GNU/Linux, como pueden ser programas Java, Perl, PHP, Ruby…
En principio, vamos a tirar de apt-get para instalar algunos programas:
apt-get install tdsodbc unixodbc libct3 libltdl3 odbcinst1debian1
Lo siguiente es crear el fichero /etc/odbcinst.ini, que debe de contener lo siguiente:
[FreeTDS] Description = TDS driver (Sybase/MS SQL) Driver = /usr/lib/odbc/libtdsodbc.so Setup = /usr/lib/odbc/libtdsS.so CPTimeout = CPReuse =
Ahora, para cada base de datos a la que queramos conectarnos, habrá que agregar un bloque de este tipo en el fichero /etc/odbc.ini:
[contactos] Driver = FreeTDS Server = 192.168.1.5 Database = contactos TDS_Version = 8.0 Port = 1433
El nombre de la conexión es el que se situa entre los corchetes, y el que se usará para referenciar a esa conexión.
Para comprobar, podemos ejecutar el comando isql con los siguientes parámetros:
isql contactos usuario clave
Con esto, desde interfaces como DBI (Perl y Ruby), podemos usar DSN del tipo DBI:ODBC:contactos para acceder a esta conexión, siempre pensando que el usuario y la clave debe de insertarse en el comando de conexión.
[...] http://bosqueviejo.net/wordpress/2009/02/04/sql-server-via-odbc-en-debian-etch/ [...]
donde y como debe estar el archivo de la base, a mi no se me conecto…me dio error Could not SQLConnect. tengo la configuracion identica a tu ejemplo…por favor me das una mano? mil gracias!!
[ Responder ]
La conexión depende mucho de la versiónde TDS que se ponga. Yo voy alternando entre 8.0 y 7.0, ya que uso SQL Server 2000, 2005 y 2008… también tienes que tener todo perfectamente instalado y asegurarte de que has escrito correctamente cada caracter de los datos sensibles (Server, Driver, Database…) por último, asegúrate de que los datos de usuario también son correctos y mira el log de SQL Server para ver si le ha llegado petición de conexión, al menos.
[ Responder ]
Hola! muchas gracias por el tuto…
Tengo una sola consulta… se puede dar la instancia que una consulta genere menos informacion (datos) que la misma consulta ejecutada con el analizador SQL de Win32?
En mi caso… una consulta genera desde Linux por freetds genero 8 rows y por SQL analizador win32 15.
Muchas gracias!
[ Responder ]
bombadil Respuesta:
Usandoagosto 13th, 2009, %H:%M 12Thu, 13 Aug 2009 00:11:45 +000045.
Hola,
sí que se puede dar el caso. SQL Server tiene el mal de los errores just-in-time, es decir, que si has hecho una comparación del tipo:
SELECT * FROM datos WHERE telefono = 999111222;
Te encontrarás con que, si el tipo de dato “teléfono” es “varchar” y tiene algún campo con un carácter alfanumérico, en ese momento es cuando da un error y deja de mostrar información. Hay forma de rescatar los errores desde el servidor una vez acabada la consulta… pero no recuerdo como era… lo buscaré y ampliaré el manual.
Gracias por el apunte.
[ Responder ]