2011-08-24 14 views
0

총 레코드 수를 얻는 가장 좋은 방법은 무엇입니까?ADODB - 총 레코드 수를 얻는 방법

+0

는 아마 '가장'예를 들어, 소스에서 카운트를 할 : 당신이 후있어 모든 경우 물론

는 테이블의 많은 레코드가 어떻게 'select count (*) from mytable' 등을 호출 한 다음 레코드 세트의 필드에서 값을 읽습니다. – onedaywhen

답변

0

ADOQuery, SQL = "선택 개수 (*) from mytable where xyz"?

rs.RecordCount?

i = 0 
while not rs.eof 
    i = i + 1 
    rs.next? 
1
Dim oRS as new ADODB.Recordset 
dim recordCount as Long 

oRS.Open "Select * FROM [tablename]", myConnection, adOpenStatic, adLockReadOnly 
If Not oRS.EOF Then recordCount = oRS.RecordCount 

열쇠는 여기에 adOpenStatic입니다. .RecordCount는 레코드 세트의 실제 레코드 수를 가져올 수 있습니다.

Dim oRS as new ADODB.Recordset 
dim recordCount as Long 

oRS.Open "Select Count(*) FROM [tablename]", myConnection, adOpenForwardOnly, adLockReadOnly 
If Not oRS.EOF Then recordCount = oRS(0).Value 
+1

'CursorType'값에 대해 약간 혼란 스럽다고 생각합니다. 'RecordCount' 속성은'adOpenStatic'을 사용할 때 의미있는 값 ('-1'보다는)을 가져야합니다. 'adOpenDynamic'은 데이터 소스에 대한 동시 (즉각적인) 업데이트에 필요합니다. 사양에 "전체 레코드 수만"(읽기 전용 잠금을 사용하는 것 외에는)이 필요하지는 않습니다. 모든 OLE DB 공급자 여하튼 그것을 지원하십시오 MS 액세스하지 않습니다. 첫 번째 예를 들면'adOpenStatic'이 적당합니다. 두 번째 예제의 경우 '저렴한' 'adOpenForwardOnly'를 사용할 수도 있습니다. – onedaywhen

+0

@onedaywhen : 감사. 사실 나는 혼란스럽지 않았다. Intellisense의 이점없이이 물건을 기억/입력하기가 더 어렵습니다.) –

관련 문제