Pb recordcount

Signaler
Messages postés
47
Date d'inscription
mercredi 29 mai 2002
Statut
Membre
Dernière intervention
17 août 2006
-
Messages postés
114
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
17 novembre 2014
-
Bonjour,

J'utilise VB6, ADO et Oracle 8.
Lorsque j'interroge ma BD via une procédure stockée, le recordcount me retourne toujours -1, même si j'ai des enregistrements dans le recordset.

Quelqu'un peut-il m'aider ?

Le code de ma fonction est dessous
Merci

***********************

Friend Function flUsersLireBD(Optional ByVal Trigramme As String = gsAbs) As Long
Dim rsResultat As ADODB.Recordset
Dim cmdTrig As ADODB.Parameter
Dim cmdRetour As ADODB.Parameter
Dim cmd As ADODB.Command
Dim tabCle(0 To 1) As String

On Error GoTo flUsersLireBD_err
flUsersLireBD = 0
Source = "colCles.flUsersLireBD/" & gbDegrader

Set rsResultat = New ADODB.Recordset
Set cmdTrig = New ADODB.Parameter
Set cmdRetour = New ADODB.Parameter
Set cmd = New ADODB.Command

cmd.ActiveConnection = gcnnDBM
' proc stockee qui ouvre un curseur
cmd.CommandText = "PS_USER.UsersId_Read"
cmd.CommandType = adCmdStoredProc

If StrComp(Trigramme, gsAbs) = 0 Or Len(Trigramme) > 3 Then
Trigramme = ""
'Set cmdTrig = cmd.CreateParameter("cmdTrig", adVarChar, adParamInput, 3, Trigramme)
End If

Set cmdTrig = cmd.CreateParameter("cmdTrig", adVarChar, adParamInput, 3, Trigramme)
cmd.Parameters.Append cmdTrig
'cmdTrig.Value = Trigramme
Set cmdRetour = cmd.CreateParameter("cmdRetour", adSmallInt, adParamOutput)
cmd.Parameters.Append cmdRetour

cmd.Properties("PLSQLRSet") = True
'cmd.CommandText = "{call PS_USER.UsersId_Read(?) }"
Set rsResultat = cmd.Execute
cmd.Properties("PLSQLRSet") = False

If rsResultat.recordcount = 0 Then
flUsersLireBD = 1
fpErreurRenseigner "Mess3003" 'pas d'occurrence
rsResultat.Close
Set rsResultat = Nothing
Set pcolCles = Nothing
Exit Function
End If

Do Until rsResultat.EOF
tabCle(0) = Trim(rsResultat!user_id)
Me.Add DBM_SELECT, 1, tabCle, rsResultat!idRow
rsResultat.MoveNext
Loop

rsResultat.Close
Set rsResultat = Nothing
end function
:question)

2 réponses

Messages postés
95
Date d'inscription
jeudi 27 décembre 2001
Statut
Membre
Dernière intervention
17 avril 2013

Salut, dans certain cas la proprieté RecordCount d'un objet Recordset est à -1 même s'il y a des données dedans tant que tu n'as pas parcouru les champs stockés dans ce RecordSet.
0
Messages postés
114
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
17 novembre 2014

Comme le dit Xavier77, certains SGBD ne sont pas capables te de fournir le nombre d'enregistrement au delà de celui en cours.

Quand .RecordCount est à -1 ce n'est pas une erreur (lire l'aide en ligne) mais c'est que le SGBD ne peut de fournir l'info.
--------------------
Skrol 29
www.skrol29.com
--------------------
0