2008-08-21 15 views
5

Me estremece preguntar, pero mi cliente podría no ofrecer ninguna otra solución SQL (o similar a SQL). Sé que Access tiene algunos enganches SQL; ¿son suficientes para ActiveRecord básico?¿Alguna sugerencia para hacer que Rails se ejecute con un back-end de Access?

después:

aprecio todas las sugerencias para utilizar otras bases de datos, pero confía en mí: he intentado convencer a ellos. Hay una lista "aprobada" y no hay bases de datos SQL en ella. Obtener algo en la lista podría tomar más de un año, y este proyecto se realizará en tres semanas.

+0

Tía Bea, tengo un consejo de cocina para ti: ¡no! –

Respuesta

1

Otra opción que es más complicada pero podría funcionar si tuviera que hacerlo, es escribir una capa de servicios web RESTful que expondrá el acceso a los rieles. Si tiene cuidado en su diseño, esos servicios web RESTful pueden ser consumidos directamente por ActiveResoure, lo que le dará una gran parte de la funcionalidad de ActiveRecord.

1

Hay algunas cosas extrañas en Access que pueden causar problemas y no sé si ODBC se ocupará de ello. Si lo hace @John Topley tiene razón, ODBC sería su única cancelación.

  1. True en el acceso 1 = -1 no
  2. trata de Acceso fechas diferente que TSQL regular.
  3. Puede tener problemas para crear relaciones.

Si vas con el acceso, probablemente aprender más acerca de debuging AcriveRecord entonces alguna vez cuidó a (que podría no ser una mala cosa)

2

Parece que hay algo así como un adaptador de conexión de acceso aquí: http://svn.behindlogic.com/public/rails/activerecord/lib/active_record/connection_adapters/msaccess_adapter.rb

El archivo database.yml se vería así:

development: 
    adapter: msaccess 
    database: C:\path\to\access_file.mdb 

voy a publicar más después lo he intentado con Rails 2.1

+1

Anoche tropecé con el mismo archivo: está incompleto, ya que está destinado principalmente a admitir operaciones de lectura, suponiendo que el MDB es efectivamente heredado. Además, no le gustan los nombres de tabla/columna con espacios (no puedo decir que culpe) pero eso se puede administrar fácilmente si puede agregar una consulta que cambie el nombre de las columnas, usando 'set_table_name' en el modelo. –

0

Realmente debería hablar de permitir SQLite. Es súper simple de configurar y funciona como Access (como un archivo que se encuentra junto a la aplicación en el mismo servidor).

0

En primer lugar, usted realmente quiere estar usando sqlite.

En mi experiencia, el acceso en sí es un montón de [redactado], pero el motor de base de datos de Jet que utiliza es en realidad bastante rápido y puede manejar algunas consultas SQL bastante complejas. Si puedes encontrar un adaptador de rieles que realmente funcione, diría que estarás bien. Simplemente no abra el DB con la interfaz de acceso mientras se ejecuta la aplicación Rails :-)

Si su cliente es lo suficientemente anal como para permitirle desarrollar con una lista de bases de datos aprobadas, pueden estar más preocupados por la hecho de que Jet isdeprectated y no recibirá más apoyo de MS.

Esto podría darle un poco de munición en su búsqueda para usar una base de datos real.Buena suerte

1

Maudite escribió:

True en el acceso -1 = No 1

no es correcta. Verdadero se define como no ser falso. Por lo tanto, si desea usar True en una cláusula WHERE, use Not False en su lugar. Esto proporcionará compatibilidad completa multiplataforma con todos los motores SQL.

Dicho todo esto, no es un problema, ya que cualquier controlador que esté utilizando para conectarse a su back-end traduce correctamente las cláusulas True in WHERE al valor apropiado. La única excepción podría estar en las consultas de paso a través, pero en ese caso, debe escribir el SQL fuera de Access y probarlo en su back-end y simplemente pegar el SQL que funciona en la vista SQL de su consulta de acceso en Access.

Maudite escribió: Fechas

trata de acceso diferente que TSQL regular.

Una vez más, esto sólo va a ser un problema si no se va a través de los controladores ODBC o OLEDB, que se encargará de traducir SQL Jet en TSQL para usted.

Maudite escribió:

Usted podría encontrarse con problemas para crear relaciones.

No estoy seguro de por qué quieres que una aplicación de Access altere el esquema de tu back-end, por lo que me parece que no es un problema.

Cuestiones relacionadas