문제

물어보기가 겁이 나지만 내 고객이 다른 SQL(또는 SQL과 유사한) 솔루션을 제공하지 않을 수도 있습니다.Access에 SQL 후크가 있다는 것을 알고 있습니다.기본 ActiveRecord에 충분합니까?

나중에:

다른 데이터베이스를 사용하라는 모든 제안에 감사드립니다. 하지만 저를 믿으세요.나는 그들을 설득하려고 노력했습니다."승인된" 목록이 있지만 여기에는 SQL 데이터베이스가 없습니다.목록에 뭔가를 올리려면 1년 이상이 걸릴 수 있으며, 이 프로젝트는 3주 안에 완료됩니다.

도움이 되었습니까?

해결책

긴 기회이지만 다음이 있습니다. ActiveRecord용 ODBC 어댑터 그게 효과가 있을 수도 있어요.

다른 팁

여기에는 Access 연결 어댑터가 있는 것 같습니다. 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

Rails 2.1을 사용해본 후에 더 많은 글을 게시하겠습니다.

더 복잡하지만 강제로 수행해야 하는 경우 작동할 수 있는 또 다른 옵션은 Access를 레일에 노출하는 RESTful 웹 서비스 계층을 작성하는 것입니다.신중하게 설계한다면 이러한 RESTful 웹 서비스를 ActiveResoure에서 직접 사용할 수 있으며 이는 ActiveRecord의 많은 기능을 제공합니다.

Access에는 문제를 일으킬 수 있는 이상한 것들이 있는데 ODBC가 이를 처리하는지 모르겠습니다.@John Topley가 맞다면 ODBC가 유일한 해결책이 될 것입니다.

  1. 액세스가 True = 1이 아닌 -1
  2. Access는 날짜를 일반 TSQL과 다르게 처리합니다.
  3. 관계를 형성하는 데 어려움을 겪을 수도 있습니다.

액세스 권한을 가지면 AcriveRecord 디버깅에 대해 더 많이 배울 수 있을 것입니다. (나쁜 것은 아닐 수도 있습니다)

Maudite는 다음과 같이 썼습니다.

액세스가 True = 1이 아닌 -1

정확하지 않습니다.True는 False가 아닌 것으로 정의됩니다.따라서 WHERE 절에서 True를 사용하려면 대신 Not False를 사용하세요.이는 모든 SQL 엔진과 완전한 플랫폼 간 호환성을 제공합니다.

즉, 백엔드에 연결하는 데 사용하는 드라이버가 무엇이든 WHERE 절의 True를 적절한 값으로 적절하게 변환하므로 문제가 되지 않습니다.유일한 예외는 통과 쿼리일 수 있지만, 이 경우 Access 외부에서 SQL을 작성하고 이를 백엔드에 대해 테스트한 다음 작업 SQL을 Access에서 통과 쿼리의 SQL 보기에 붙여넣어야 합니다.

Maudite는 다음과 같이 썼습니다.

Access는 날짜를 일반 TSQL과 다르게 처리합니다.

다시 말하지만, 이는 Jet SQL을 TSQL로 변환하는 작업을 담당하는 ODBC 또는 OLEDB 드라이버를 사용하지 않는 경우에만 문제가 될 것입니다.

Maudite는 다음과 같이 썼습니다.

관계를 형성하는 데 어려움을 겪을 수도 있습니다.

Access 응용 프로그램이 백엔드의 스키마를 변경하기를 원하는 이유가 무엇인지 잘 모르겠습니다. 따라서 이는 문제가 되지 않는 것 같습니다.

SQLite를 허용하도록 실제로 이야기해야 합니다.설정이 매우 간단하고 Access처럼 작동합니다(동일한 서버의 앱 옆에 있는 파일로).

첫째로, 당신은 정말 sqlite를 사용하고 싶습니다.

내 경험에 따르면 Access 자체는 [수정됨]의 더미이지만, Access에서 사용하는 Jet 데이터베이스 엔진은 실제로 꽤 빠르며 꽤 복잡한 SQL 쿼리를 처리할 수 있습니다.실제로 작동하는 레일 어댑터를 찾을 수 있다면 괜찮을 것입니다.Rails 앱이 실행되는 동안 액세스 프런트엔드로 DB를 열지 마세요 :-)

귀하의 고객이 승인된 데이터베이스 목록을 통해서만 개발을 허용할 만큼 분석적이라면 그들은 다음과 같은 사실에 더 관심을 가질 수 있습니다. 제트기는 더 이상 사용되지 않음 MS로부터 더 이상 지원을 받지 못할 것입니다.

이는 실제 데이터베이스를 사용하려는 탐구에 있어 약간의 탄약을 제공할 수 있습니다.행운을 빌어요

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top