2008-08-21 5 views
5

나는 묻겠다.하지만 내 클라이언트는 다른 SQL (또는 SQL 유사) 솔루션을 제공하지 않을 수도있다. 나는 Access가 SQL 훅을 가지고 있음을 안다. 기본 ActiveRecord에 충분합니까? 나중에Access 백엔드에서 Rails를 실행하는 데 필요한 팁이 있습니까?

은 :

나는 모든 제안은 다른 데이터베이스를 사용하지만, 날 믿어 주셔서 감사합니다 : 난 그들을 설득 시도했습니다. "승인 된"목록이 있으며 SQL 데이터베이스가 없습니다. 목록에 뭔가를 가져 오는 데 1 년 이상 걸릴 수 있으며이 프로젝트는 3 주 안에 완료됩니다.

+0

Bea 고모, 나는 너에게 요리 팁을 가지고있다.하지 마라! –

답변

1

더 복잡하지만 강제로 수행 할 수있는 또 다른 옵션은 액세스를 레일에 노출시키는 RESTful 웹 서비스 레이어를 작성하는 것입니다. 디자인에주의를 기울이면 RESTful 웹 서비스를 ActiveResoure에서 직접 소비 할 수 있으므로 ActiveRecord의 많은 기능을 사용할 수 있습니다.

1

Access에서 문제를 일으킬 수있는 이상한 점이 있으며, ODBC가 문제를 해결하는지 알 수 없습니다. @ 존 Topley가 맞다면, ODBC가 유일한 위험이 될 것입니다. 액세스에서

  1. 진정한 = -1하지 1
  2. 액세스 취급 일반 TSQL 다르게 거슬러 올라간다.
  3. 관계를 만드는 데 문제가 발생할 수 있습니다.

액세스에 가면, 아마

2

여기에 액세스 연결 어댑터의 뭔가가있는 것 같습니다 (나쁜 일이되지 않을 수도있는) 당신이 이제까지 걱정 다음 AcriveRecord을 debuging에 대해 자세히 배울 것이다 : http://svn.behindlogic.com/public/rails/activerecord/lib/active_record/connection_adapters/msaccess_adapter.rb

database.yml을 파일은 다음과 같습니다

development: 
    adapter: msaccess 
    database: C:\path\to\access_file.mdb 
나는 레일과 함께 그것을 시도했다 후 나는 더 게시합니다

2.1

+1

어젯밤에 같은 파일을 우연히 만났습니다. MDB가 효과적으로 레거시라고 가정 할 때 읽기 작업을 지원하기위한 것이므로 불완전합니다. 또한 공백이있는 테이블/컬럼 이름을 좋아하지 않지만 (비난 할 수는 없다) 모델에서'set_table_name'을 사용하여 컬럼의 이름을 바꾸는 쿼리를 추가 할 수 있다면 쉽게 관리 할 수있다. –

0

당신은 정말로 SQLite를 허용하도록 이야기해야합니다. 설치가 매우 쉽고 Access와 같은 방식으로 작동합니다 (동일한 서버의 응용 프로그램 옆에 파일로 표시).

0

먼저 은 sqlite를 사용하고 싶습니다.

내 경험에 따르면 액세스 자체는 [redacted] 파일이지만 실제로 사용되는 Jet 데이터베이스 엔진은 꽤 빠르며 복잡한 SQL 쿼리를 처리 할 수 ​​있습니다. 실제로 작동하는 레일 어댑터를 찾을 수 있다면 괜찮을 것이라고 말하고 싶습니다. 레일 앱이 실행되는 동안 액세스 프론트 엔드로 DB를 열지 마십시오.

클라이언트가 승인 된 데이터베이스 목록으로 개발할 수있을만큼만 항암 작용을하는 경우, 사실 Jet isdeprectated이며 MS에서 더 이상 지원을받지 않습니다.

이렇게하면 실제 데이터베이스를 사용하는 데 탄약을 줄 수 있습니다.운이 좋은

1

Maudite 썼다 :

진정한 액세스에 = -1 1

가 해결되지 않습니다. True는 거짓이 아닌 것으로 정의됩니다. 따라서 WHERE 절에서 True를 사용하려면 Not False를 대신 사용하십시오. 이것은 모든 SQL 엔진과 완벽한 플랫폼 간 호환성을 제공합니다.

당신이 백엔드에 연결하기 위해 사용하는 드라이버가 WHERE 절에서 적절한 값으로 올바르게 변환되므로 문제는 거의 없습니다. 유일한 예외는 통과 쿼리 일 수 있지만,이 경우 Access 외부에서 SQL을 작성하고 백엔드에 대해 테스트하고 작동중인 SQL을 Access의 패스 스루 쿼리의 SQL보기에 붙여 넣어야합니다.

Maudite 썼다 :

액세스 취급 일반 TSQL 다르게 거슬러 올라간다.

또한이 문제는 Jet SQL을 TSQL로 변환하는 ODBC 또는 OLEDB 드라이버를 거치지 않은 경우에만 문제가 될 것입니다.

Maudite 썼다 : 당신은 문제가 만드는 관계로 실행될 수 있습니다

.

Access 응용 프로그램에서 백 엔드의 스키마를 변경하려는 이유가 확실하지 않으므로 문제가 아닌 것처럼 보입니다.

관련 문제