draaxk
Messages postés3Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention 7 novembre 2008
-
7 nov. 2008 à 19:16
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
7 nov. 2008 à 22:19
Bonjour à tous,
Lorsque je réalise un "show tables" (ou un "show tables from nomtable") via le drivers ODBC de MySQL (ADODB), j'obtiens bien un recordset avec une colonne et 83 lignes qui contiennent les noms de mes tables.
Mon problème est que le recordcount de ce recordset est à -1. Je ne comprends pas pourquoi.
Est-ce un problème connu, une erreur de ma part ?
J'utilise VB6 sous un Vista x64 Ultimate.
J'ai déjà eu des problèmes avec la requete "describe" qui sous Vista ne me rendait pas la même structure de recordset que le même programme sous XP.
draaxk
Messages postés3Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention 7 novembre 2008 7 nov. 2008 à 21:29
Au final, j'ai trouvé le problème.
Le recorset avait un curseur en foward only, ce qui n'autorise pas le recordcount. Malgré l'initiatlisation du curseur correctement, l'execution de ma requete remettait toujours un curseur foward only.
Du coup j'ai changé ma méthode d'execution pour être sûr qu'aucun paramétrage parasite ne modifie mon curseur (les connexions aux bases sont dans des bibliothèques utilisées par tous les développeurs de ma boîte).
Au final, je n'ai changé que deux lignes et ajouté une seule:
Dim dyn As ADODB.Recordset est devenu Dim dyn As New ADODB.Recordset
Set dyn = bdE.Execute(sql) est devenu dyn.Open sql, bdE, adOpenDynamic, adLockOptimistic
et j'ai ajouté juste avant l'execution
dyn.CursorLocation = adUseClient