2010-04-19 4 views
0

.Net 웹 서비스 (둘 다 Windows XP 시스템)에서 PostgreSQL 데이터베이스에 연결합니다. 최근에 몇몇 컴퓨터에서 System.AccessViolationException 오류가 발생했습니다.ADODB 필드의 값에 액세스 할 때 System.AccessViolationException의 원인은 무엇입니까?

내가 얻을 수있는 스택 추적은 ADODB.recordset을 가져 와서 필드 값을 얻었을 때 나타났습니다. 예 :

Dim rs as ADODB.Recordset = 'initialize recordset via a query to database 
MsgBox(rs("fieldName").Value) 

항상 실패하지는 않습니다. 그것은 거의 실패하지 않습니다. 우리는 컴퓨터 중 하나에서 memtest를 실행했는데 문제가 없음을 알았습니다.

무엇이 문제 일 수 있습니까? 그것이 운전사라면 내 옵션은 무엇입니까?

+0

그것은 공급자입니다. 더 나은 것을 얻거나 공급자 제공자에게 도움을 요청하십시오. http://www.devart.com/dotconnect/ –

+0

한스 - 고마워. 공급자는 운전자와 동일한 것입니까? 어떤 시점에서 우리는 npgsql을 사용할 것으로 예상 했었지만 지금은이 버그를 패치하는 데 관심이 있습니다. 나는 이것들 중 하나에서 골라야합니까? http://www.postgresql.org/download/products/2 – pc1oad1etter

답변

0

먼저해야 할 일은 ADODB 공급자 (드라이버라고도 함)를 업그레이드하는 것입니다. 이것은 수정되었을 수있는 일종의 드문 버그를 나타낼 수 있습니다. 그러나 거의 실패하지 않는다는 사실은 나에게 약간의 붉은 깃발이며 일종의 동시성 문제를 암시합니다. 이것은 멀티 스레드 응용 프로그램입니까? 그 당시에 다른 스레드는 무엇을하고 있습니까? 이것이 경주 조건 일 가능성이 있습니까?

두 번째 사항은 일부 값이 지속적으로 프로그램을 중단시킬 수 있는지 여부입니다. 어쩌면 byteas 또는 무언가에 널 (null)이 포함되어있을 수 있습니까?

그러나 이것은 드라이버 문제 일 가능성이 큽니다. 비슷한 문제가 있으면 항상 시작할 곳입니다.