2012-04-01 1 views
1

WinXP에서 .NET 3.5 응용 프로그램과 함께 SQL Anywhere 5 데이터베이스에 연결하려고합니다. 그것은 독립 실행 형 콘솔 애플 리케이션에서 잘 작동합니다. 그러나 플러그인에서 정확한 코드를 실행하면 다음 코드로 별도의 AppDomain을 실행합니다 (두 코드 사이에서 유일한 차이점이 있음). 아래 오류가 발생합니다.SQL Anywhere 연결 오류 : 드라이버가 응용 프로그램에서 요청한 ODBC 동작 버전을 지원하지 않습니다.

BTW 둘 다 SAME 사용자로 실행됩니다.

  using (OdbcConnection connection = 
       new OdbcConnection(strConnect)) 
      { 
       OdbcCommand command = new OdbcCommand(query, connection); 
       command.CommandType = CommandType.Text; 
       DataTable posRecordsTable = new DataTable(); 
       connection.Open(); 

OdbcException 예외는 다음과 같은 오류를 반환

인덱스 # 0 메시지 : [사이베이스] [ODBC 드라이버] 데이터베이스 서버에 연결할 수 없습니다 : 데이터베이스 엔진이

인덱스 # 1 를 실행하지 메시지 : [Sybase] [ODBC Driver] 연결 문자열 속성이 잘못되었습니다.

인덱스 # 2 메시지 : [Sybase] [ODBC Driver] 연결 문자열 속성이 잘못되었습니다

인덱스 # 3 메시지 : [Microsoft] [ODBC 드라이버 관리자] 드라이버가 응용 프로그램에서 요청한 ODBC 동작 버전을 지원하지 않습니다 (SQLSetEnvAttr 참조).

+0

그래서 연결 문자열은 사용자/암호 등을 알아보기 힘들게 만듭니다. 힘들지만 어떤 비트가 보이지 않고 마음에 들지 않을 수도 있습니다. –

+0

Tony, 문제는 똑같은 연결 문자열과 코드가 독립 실행 형 앱에서 잘 작동한다는 것입니다. = ((((((( –

+0

항상 부랑자. http://msdn.microsoft.com/) ko-kr/library/windows/desktop/ms709285 (v = vs.85) .aspx, 플러그인 및 콘솔의 app 도메인 구성에 약간의 차이가 있음을 알 수 있습니다. 각 appdomain 설정을 덤프 할 가치가 있습니다. 파일 뭔가를 발견 할 수 있는지 확인하십시오. –

답변

1

AppDomain의 드라이버가 독립 실행 형 상자와 동일한 구성을 갖고 있습니까? 환경의 유사성을 확인하는 것이 도움이 될 것입니다. 보통 이러한 오류는 드라이버가 정보를 읽는 곳의 설정 파일을 보면 해결됩니다. SQL Anywhere에 대해 많이 알지는 못하지만, 일반적으로 이러한 문제를 보았습니다. 연결 정보 또는 구성 파일을 변경하여 문제를 해결했습니다.

+0

Rajiv, 답장을 보내 주셔서 감사합니다. 예, 그게 내가 생각한거야. 내가 어떻게 이런 일을하고 내 문제에 대한 해결책을 찾으면 나는 누군가를 위해 그것을 게시 할 것입니다 그렇지 않으면 도움이됩니다. –

관련 문제