[ mzoran @ 12.01.2004. 22:51 ] @
Radim aplikaciju u VB-u za rad sa bazom podataka i koristim ADO.
Evo koda za konekciju:

Code:

Private Const mcstrDSNBeg As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Private Const mcstrDSNEnd As String = ";Persist Security Info=False"
Private Const mcstrPath As String = "baza.mdb"
Private Const mcstrDSN  As String = mcstrDSNBeg & mcstrPath & mcstrDSNEnd

.
.

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlstr As String, Termin as Integer
Set cnn = New ADODB.Connection
cnn.Open mcstrDSN
Set rs = New ADODB.Recordset
Termin = 1
sqlstr = "SELECT Ime FROM Termini WHERE Vreme = " & Termin & ";"
rs.Open sqlstr, cnn
MsgBox rs.RecordCount
rs.close


Ovo je samo deo koda, pretpostavljam da je greška tu negde. Naime, msgbox mi vraća -1
iako recordset ima više slogova. Takođe je -1 i kada je recordset prazan (BOF).
Probao sam da dodam i rs.MoveFirst kao i rs.Requery ali ne pomaže.
Zašto ?
[ mladenovicz @ 13.01.2004. 10:27 ] @
Citat:
MSDN:
The property returns -1 when ADO cannot determine the number of records or if the provider or cursor type does not support RecordCount.


probaj da otvaras RS ovako (adOpenDynamic)

Code:

RS.open Qry, adoConn, adOpenDynamic


Prilikom otvaranja recordseta nisi naveo CursorType, a default je adOpenForwardOnly.

Proveru da li je RS prazan, tj. da li postoje zapisi u njemu vrsi ovako:

Code:

If Not (RS.BOF And RS.EOF) Then
[ ssteva @ 13.01.2004. 20:08 ] @
Da se nadovezem koristi klijentski cursor. Tip kursora onda i ne moras da navodis prilikom otvaranja recordseta, uvek je Static. Mislim da je serverski cursor i izbacen iz ADO .Net-a.
Code:
Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
cnn.Open mcstrDSN

Najlakse je da definises na objektu konekcije. Inace default je serverski cursor i to ForwardOnly, koji nema mogucnost da prikaze RecordCount.

[ mzoran @ 15.01.2004. 21:22 ] @
Hvala na odgovorima. Tip kursora je bio problem, to nisam znao.
Kada se stavi
cnn.CursorLocation = adUseClient
RecordCount metod radi kako treba.