매우 큰 데이터베이스를 다루는 VB6 레거시 응용 프로그램을 업데이트하려고합니다. 250K 레코드가있는 가능한 업데이트를 위해 레코드 세트를 열어야합니다. SQL Server에 땀을 흘릴 필요가 없습니다. CommandTimeout 속성을 설정하기 만하면됩니다.ADO 레코드 원본으로 명령 - CommandTimeout 무시되었습니다.
이 경우 업데이트 할 수있는 레코드 세트를 반환하지 않으므로 command.Execute 메서드를 사용할 수 없습니다. 따라서 명령 개체를 만들고 속성을 설정 한 다음이를 Recordset.Open 메서드에 제공합니다. 이것은 "Object was Open"오류, 즉 timeout period 이전에 실패합니다. 즉, command.CommandTimeout이 무시되었음을 의미합니다. 연결 문자열은 표준입니다.
Dim con As New ADODB.Connection
'...connection opened (not shown)
On Error Resume Next
Dim cmd As New ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandTimeout = 600
cmd.CommandText = "SELECT * FROM BIGTABLE"
cmd.CommandType = adCmdText
With rsBigTable
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.Open cmd 'This give me the error above
End With
' Set rsBigTable= cmd.Execute
This opens the recordset, but not with parameters I need, such as locktype
연결이나 닫는 명령입니까? 그 CommandTimeout뿐만 아니라 - 그리고 나는 그것이 30 또는 60 초 기본값으로 생각한다 – dbmitch
그리고 연결뿐만 아니라 설정할 수있는 ConnectionTimeout있다 – dbmitch