2010-04-16 13 views
7

I (por desgracia) que desplegar un rieles aplicación en Windows XP que tiene que conectarse a Microsoft SQL Server 2005.Conectar carriles de aplicación a SQL Server 2005 desde Windows

Navegando en la web hay muchos hits para conectarse desde Linux a SQL Server, pero no se puede encontrar cómo hacerlo desde Windows.

Básicamente seguido estos pasos:

  • Instale DBI joya
  • Instalar activerecord-sql-server-adaptador joya

Mi database.yml ahora parece esto:

development: 
    adapter: sqlserver 
    mode: odbc 
    dsn: test_dj 
    host: HOSTNAME\SQLEXPRESS 
    database: test_dj 
    username: guest 
    password: guest 

Pero no puedo conectarlo. Cuando corro rake db: migrate consigo

IM002 (0) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

No soy un usuario de Windows, por lo que no se puede entender muy bien el significado de DSN elemento más o menos. ¿Alguien tiene una idea de cómo resolver esto?

Gracias de antemano


Con puntas Alexander ahora he modificado mi database.yml a:

development: 
    adapter: sqlserver 
    mode: odbc 
    dsn: Provider=SQLOLEDB;Data Source=SCADA\SQLEXPRESS;UID=guest;PWD=guest;Initial Catalog=test_dj;Application Name=test 

Pero ahora db rastrillo: migran me devuelve:

S1090 (0) [Microsoft][ODBC Driver Manager] Invalid string or buffer length 

Am I m emitiendo algo?

Respuesta

1

este es un DSN de la muestra, que se conecta a la base de datos utilizando la cuenta de usuario de Windows (mejor cuando la red corporativa con la conexión del dominio)

Provider=SQLOLEDB;Data Source=MyServer\MyInstance;Integrated Security=SSPI;Initial Catalog=MyDatabase;Application Name=My Application Name that will show up in the trace

Así que este utiliza el proveedor OLEDB para SQL Server. SQLNCLI también se puede usar, no lo ha probado con ODBC. En realidad, este DSN no se ha probado del todo (tengo que esperar a que mi administrador me otorgue los derechos necesarios), pero se copió de un script en funcionamiento, que usó SQLNCLI como proveedor. El origen de datos es el servidor, y si tiene una instancia con nombre, debe especificarse, por lo que es Server o Server\Instance. El Integrated Security=SSPI le informa que desea usar la Autenticación de Windows. De lo contrario, especifique el usuario y la contraseña para usar usando UID=MyUser;PWD=MyPassword. UID, usuario, nombre de usuario, contraseña: creo que todos estos parámetros funcionan.

Hay un gran sitio en Internet que proporciona todo tipo de muestras de DSN, simplemente no puede encontrarlo en ninguna parte. Si lo encuentro, te lo haré saber.

Si no tiene ningún proveedor en Rails, revise si Rails es compatible con Windows Component Object Model (COM). Y si lo hace, puede incluso inicializar la clase COM de ADODB.Connection, trabajar con ADO al respecto.

Ah, aquí está ese sitio que estaba hablando: http://www.connectionstrings.com/

+0

Gracias Alejandro por su respuesta. De acuerdo con su sugerencia, he modificado mi database.yml como en la publicación editada, pero ahora tengo "Cadena no válida o longitud de búfer" –

+0

Esto parece un error en las consultas SQL, no es un error de conexión. También es útil proporcionar el código de error, puede decir mucho. De todos modos, encontré este artículo que podría ayudarlo: http://tutorials.aspfaq.com/8000xxxxx-errors/why-do-i-get-80040e57/80040e07-errors.html por supuesto, depende de qué escala tus consultas SQL están automatizadas y cómo puedes modificarlas. También tenga en cuenta que CHAR y VARCHAR en MSSQL tienen una longitud máxima de 8000. – AlexanderMP

+0

Tengo el mismo problema que Enrico. Aquí está el error: ODBC :: Error: S1090 (0) [Microsoft] [ODBC Driver Manager] Cadena no válida o longitud del buffer Esto es de hacer una consulta completa en mi modelo (muy simple). –

Cuestiones relacionadas