j'utilise ADO2.7 pour l'acces a ma Database.
Comme pilote odbc jutilise le pilote fourni par oracle9.
Or jai un petit soucis lorsque je creer mon recordset.
C'est bien trop long.Je ne vois pas ou est le probleme car ma requete sous
un analyseur me retourne des enregistrements sous un temps en dessous de la
seconde.
Or ici la methode Rs.Open met plus de 20 Secondes !
Par contre la methode Command.execute sous VB est quasi instantanée
Please Help me
Voici le debut de ma fonction .
sur le recordset.open
il met plus de 20 sec a me renvoyer la reponse
alors que la requete est de l'ordre de la millisecondes
Public Function OpenRecordset(ByRef Recset As ADODB.Recordset, Optional
TableName As String, _
Optional SqlQuery As String, Optional BlankTablePermitted As Boolean =
True, _
Optional pCursorLocation As CursorLocationEnum = adUseClient, _
Optional pCursorType As CursorTypeEnum = adOpenKeyset, _
Optional pLockType As LockTypeEnum = adLockOptimistic, _
Optional bKeepConnexion As Boolean = True) As Boolean
Dim sErrorMsg As String, sRecordsetSource As String
Dim iComptError As Integer
On Error GoTo Erreur
sErrorMsg = vbNullString
If TableName = vbNullString And SqlQuery = vbNullString Then
sErrorMsg = "No table name or sql query defined! Process cancelled..."
GoTo Erreur
ElseIf TableName <> vbNullString And SqlQuery <> vbNullString Then
sErrorMsg = "Table name and sql query both defined! Process cancelled..."
GoTo Erreur
ElseIf TableName <> vbNullString Then
sRecordsetSource = TableName
ElseIf SqlQuery <> vbNullString Then
sRecordsetSource = SqlQuery
End If
'set up query
Set Recset = New ADODB.Recordset
Set Recset.ActiveConnection = GCnxDbFit
Recset.CursorLocation = pCursorLocation
Recset.CursorType = pCursorType
Recset.LockType = pLockType
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Axel Guerrier [MS]
Bonjour,
A priori, tu passes par ODBC. Pourquoi ne pas prendre le Provider OLEDB pour Oracle ? ça te fera une couche en moins à parcourir et ça améliorera les performances globales.
-- Axel GUERRIER Microsoft France -------------------- Merci de bien vouloir répondre à ce message dans le newsgroup où il a été posté. Je le consulte régulièrement.
"Chnew" wrote in message news:
Bonjour,
j'utilise ADO2.7 pour l'acces a ma Database. Comme pilote odbc jutilise le pilote fourni par oracle9.
Or jai un petit soucis lorsque je creer mon recordset. C'est bien trop long.Je ne vois pas ou est le probleme car ma requete sous un analyseur me retourne des enregistrements sous un temps en dessous de
la
seconde. Or ici la methode Rs.Open met plus de 20 Secondes !
Par contre la methode Command.execute sous VB est quasi instantanée
Please Help me
Voici le debut de ma fonction . sur le recordset.open
il met plus de 20 sec a me renvoyer la reponse alors que la requete est de l'ordre de la millisecondes
Public Function OpenRecordset(ByRef Recset As ADODB.Recordset, Optional TableName As String, _ Optional SqlQuery As String, Optional BlankTablePermitted As Boolean > True, _ Optional pCursorLocation As CursorLocationEnum = adUseClient, _ Optional pCursorType As CursorTypeEnum = adOpenKeyset, _ Optional pLockType As LockTypeEnum = adLockOptimistic, _ Optional bKeepConnexion As Boolean = True) As Boolean
Dim sErrorMsg As String, sRecordsetSource As String Dim iComptError As Integer
On Error GoTo Erreur sErrorMsg = vbNullString
If TableName = vbNullString And SqlQuery = vbNullString Then sErrorMsg = "No table name or sql query defined! Process
cancelled..."
GoTo Erreur ElseIf TableName <> vbNullString And SqlQuery <> vbNullString Then sErrorMsg = "Table name and sql query both defined! Process
cancelled..."
GoTo Erreur ElseIf TableName <> vbNullString Then sRecordsetSource = TableName ElseIf SqlQuery <> vbNullString Then sRecordsetSource = SqlQuery End If
'set up query Set Recset = New ADODB.Recordset Set Recset.ActiveConnection = GCnxDbFit Recset.CursorLocation = pCursorLocation Recset.CursorType = pCursorType Recset.LockType = pLockType
A priori, tu passes par ODBC.
Pourquoi ne pas prendre le Provider OLEDB pour Oracle ? ça te fera une
couche en moins à parcourir et ça améliorera les performances globales.
--
Axel GUERRIER
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.
"Chnew" <Chnew@discussions.microsoft.com> wrote in message
news:B6A15C36-6E0A-475C-9C15-A10F5F1F00B7@microsoft.com...
Bonjour,
j'utilise ADO2.7 pour l'acces a ma Database.
Comme pilote odbc jutilise le pilote fourni par oracle9.
Or jai un petit soucis lorsque je creer mon recordset.
C'est bien trop long.Je ne vois pas ou est le probleme car ma requete sous
un analyseur me retourne des enregistrements sous un temps en dessous de
la
seconde.
Or ici la methode Rs.Open met plus de 20 Secondes !
Par contre la methode Command.execute sous VB est quasi instantanée
Please Help me
Voici le debut de ma fonction .
sur le recordset.open
il met plus de 20 sec a me renvoyer la reponse
alors que la requete est de l'ordre de la millisecondes
Public Function OpenRecordset(ByRef Recset As ADODB.Recordset, Optional
TableName As String, _
Optional SqlQuery As String, Optional BlankTablePermitted As Boolean > True, _
Optional pCursorLocation As CursorLocationEnum = adUseClient, _
Optional pCursorType As CursorTypeEnum = adOpenKeyset, _
Optional pLockType As LockTypeEnum = adLockOptimistic, _
Optional bKeepConnexion As Boolean = True) As Boolean
Dim sErrorMsg As String, sRecordsetSource As String
Dim iComptError As Integer
On Error GoTo Erreur
sErrorMsg = vbNullString
If TableName = vbNullString And SqlQuery = vbNullString Then
sErrorMsg = "No table name or sql query defined! Process
cancelled..."
GoTo Erreur
ElseIf TableName <> vbNullString And SqlQuery <> vbNullString Then
sErrorMsg = "Table name and sql query both defined! Process
cancelled..."
GoTo Erreur
ElseIf TableName <> vbNullString Then
sRecordsetSource = TableName
ElseIf SqlQuery <> vbNullString Then
sRecordsetSource = SqlQuery
End If
'set up query
Set Recset = New ADODB.Recordset
Set Recset.ActiveConnection = GCnxDbFit
Recset.CursorLocation = pCursorLocation
Recset.CursorType = pCursorType
Recset.LockType = pLockType
A priori, tu passes par ODBC. Pourquoi ne pas prendre le Provider OLEDB pour Oracle ? ça te fera une couche en moins à parcourir et ça améliorera les performances globales.
-- Axel GUERRIER Microsoft France -------------------- Merci de bien vouloir répondre à ce message dans le newsgroup où il a été posté. Je le consulte régulièrement.
"Chnew" wrote in message news:
Bonjour,
j'utilise ADO2.7 pour l'acces a ma Database. Comme pilote odbc jutilise le pilote fourni par oracle9.
Or jai un petit soucis lorsque je creer mon recordset. C'est bien trop long.Je ne vois pas ou est le probleme car ma requete sous un analyseur me retourne des enregistrements sous un temps en dessous de
la
seconde. Or ici la methode Rs.Open met plus de 20 Secondes !
Par contre la methode Command.execute sous VB est quasi instantanée
Please Help me
Voici le debut de ma fonction . sur le recordset.open
il met plus de 20 sec a me renvoyer la reponse alors que la requete est de l'ordre de la millisecondes
Public Function OpenRecordset(ByRef Recset As ADODB.Recordset, Optional TableName As String, _ Optional SqlQuery As String, Optional BlankTablePermitted As Boolean > True, _ Optional pCursorLocation As CursorLocationEnum = adUseClient, _ Optional pCursorType As CursorTypeEnum = adOpenKeyset, _ Optional pLockType As LockTypeEnum = adLockOptimistic, _ Optional bKeepConnexion As Boolean = True) As Boolean
Dim sErrorMsg As String, sRecordsetSource As String Dim iComptError As Integer
On Error GoTo Erreur sErrorMsg = vbNullString
If TableName = vbNullString And SqlQuery = vbNullString Then sErrorMsg = "No table name or sql query defined! Process
cancelled..."
GoTo Erreur ElseIf TableName <> vbNullString And SqlQuery <> vbNullString Then sErrorMsg = "Table name and sql query both defined! Process
cancelled..."
GoTo Erreur ElseIf TableName <> vbNullString Then sRecordsetSource = TableName ElseIf SqlQuery <> vbNullString Then sRecordsetSource = SqlQuery End If
'set up query Set Recset = New ADODB.Recordset Set Recset.ActiveConnection = GCnxDbFit Recset.CursorLocation = pCursorLocation Recset.CursorType = pCursorType Recset.LockType = pLockType