최근에 나는 매우 이상한 problem을 가졌다. 응용 프로그램은 클래식 ASP로 작성되어 있지만 ADO/OLEDB를 사용하는 모든 연결에서 같은 경우입니다.ADODB 이상한 행동
이들은 연결 매개 변수입니다. 짧은이 코드에서
conn=Server.CreateObject("ADODB.Connection");
conn.Provider="Microsoft.Jet.OLEDB.4.0";
conn.Open("D:/db/testingDb.mdb");
: BigQuery의 행보다 특정 이상의 수를 반환하는 경우
conn.Open("myconnection");
bigQuery = "...";
rs = conn.execute(bigQuery);
while (!rs.eof) {
...
smallQuery = "..."
rssmall = conn.execute(smallQuery);
...
rssmall.close();
...
rs.movenext();
}
rs.close();
conn.close();
이 (내 경우에는 ~ 20) 작동하지 않습니다. 하지만 제안 stealthyninja 같은 내부 루프에 대한 또 하나 개의 연결을 사용하는 경우 :
conn.Open("myconnection");
conn2.Open("myconnection")
bigQuery = "...";
rs = conn.execute(bigQuery);
while (!rs.eof) {
...
smallQuery = "..."
rssmall = conn2.execute(smallQuery);
...
rssmall.close();
...
rs.movenext();
}
rs.close();
conn2.close();
conn.close();
문제가 사라합니다.
중요한 경우 Access 데이터베이스와 IIS7을 사용하고 있습니다.
누구든지 이에 대한 논리적 설명이 있습니까?
나는 그것에 대해 아무것도 찾을 수 없지만 내 _guess_ 열린 레코드 집합에 이미 연결된 연결을 다시 사용할 수 없다는 것입니다. 왜 약 20 개의 레코드에서 작동합니까? 아마도 캐싱. 다시 말하지만, 이것은 모두 추측입니다. 이 문제와 관련된 레코드 세트 또는 Connection 개체의 Execute 메서드에서 아무 것도 찾을 수 없습니다. –