Pb recordcount

cs_zephyrin Messages postés 47 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 17 août 2006 - 11 juil. 2002 à 15:52
skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014 - 16 juil. 2002 à 17:54
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

cs_xavier77 Messages postés 95 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 17 avril 2013
12 juil. 2002 à 09:16
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
skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014
16 juil. 2002 à 17:54
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
Rejoignez-nous