2016-11-08 7 views
1

unixODBC (2.3.4)로 FreeTDS (1.00.15)를 성공적으로 설치하고 MS SQL Server (2014)에 액세스했습니다. 나는 현재 내가 겪고있는 문제가 FreeTDS와 unixODBC에 있지 않다는 것을 확인할 수 있었다. 이는 isql 클라이언트 프롬프트에서 select 및 update 쿼리를 모두 실행할 수 있기 때문입니다.Ruby-ODBC 트랜잭션 문이 MSSQL (Mac OSX)에서 테이블을 업데이트하지 않음

루비 -ODBC 젬이있는 Sinatra 앱으로 엘 캐피 탄 OS X를 실행 중입니다.

응용 프로그램은 데이터베이스의 레코드를 제대로 쿼리 할 수 ​​있습니다. 그러나 업데이트 문을 트리거하는 루비 메서드를 실행하려고하면 로그에 성공적이라고 표시되지만 데이터베이스를 확인할 때 아무 것도 업데이트되지 않습니다. 이것은 루비 웹 응용 프로그램이 데이터 소스를 올바르게 업데이트하지 못하게합니다.

새로운 정보

그래서 오늘 아침 (2016년 11월 11일)이 업데이트 문이 트랜잭션 블록에서 실행되는 경우 루비-ODBC가 작동하지 않는다는 것입니다 무엇을 발견. 그러나 트랜잭션을 주석 처리하면 완벽하게 작동하고 데이터를 커밋합니다. 이것이 OS X와 ​​Fedora 사이의 코드 처리 차이입니다.

누구에게이 문제에 대한 해결책이 있습니까?

+0

이 응용 프로그램은 이미 Fedora 23에서 올바르게 실행 중임을 언급해야합니다. 나는이 응용 프로그램 자체를 변경하지 않고이 응용 프로그램의 소유자에 대한 침입을하지 않고 OSX에서 기본적으로이 응용 프로그램을 실행하려고합니다. –

답변

1

Python 또는 PHP과 함께 FreeTDS을 사용하는 것과 같은 경우 연결 옵션의 일부로 autocommit=True을 설정해야합니다. 자세한 내용은 여기를 autocommit에 대한 검색

http://www.ch-werner.de/rubyodbc/odbc.html

행운을 빕니다!

+0

이 응용 프로그램이 이미 Fedora 23에서 올바르게 실행 중임을 언급해야합니다. 응용 프로그램 자체를 변경하지 않고 OSX에서이 응용 프로그램을 기본적으로 실행하려고합니다. –