probleme movefirst - VB/VBA/VBS - Programmation
Marsh Posté le 04-04-2005 à 09:33:11
Salut,
Regarde du côté de la définition de ton recordset. Je n'ai pas vérifié mais il me semble que tu as une propriété définissant le Recordset en "forward only" (donc tu peux pas faire de movefirst).
En tous les cas, je pense que c'est bien que tu regardes de ce côté là!
A+
Marsh Posté le 04-04-2005 à 10:00:36
c'est une propriété a modifier ds le code ou dans la base de données?
(Je n'ai pas la msdn et je n'arrive pas a trouver comment le faire dans le code)
Marsh Posté le 04-04-2005 à 11:23:28
j'ai modifié la methode de connexion dans la methode "BolConnectDynamic" de ma dll qui gere l'ouverture de la base de donnees:
With pObjConnexion
'Initialisation des parametres de connexion
.Provider = "MSDASQL"
.CursorLocation = adUseServer
'--------------------------------------------------------
'rajout
'--------------------------------------------------------
.CursorType = adOpenDynamic
'--------------------------------------------------------
.ConnectionString = ...
'Ouverture de la base de données
.Open
End With
et j'ai maintenant l'erreur suivante:
L'objet ne gère pas les arguments nommés - ClsDBObject.BolConnectDynamic
quelles sont les options que je dois ecrire pour enfin pouvoir faire un movefirst??
Marsh Posté le 04-04-2005 à 15:17:04
Peut-être que le adOpenDynamic ne peut pas être un curseur côté serveur mais que côté client... Suis pas sûr mais...
Marsh Posté le 04-04-2005 à 15:22:23
il me semble que si d'apres la page web suivante :
http://dev.mysql.com/tech-resource [...] locks.html
Marsh Posté le 04-04-2005 à 16:20:05
Ah mais attends, je pense que l'erreur que tu fais, c'est de définir le CursorType au niveau de la connexion à la DB. Il me semble que ce serait plutôt une propriété à définir au niveau du recordset. Avant de l'ouvrir:
Dim rsToto as New ADODB.Recordset
With rsToto
Set ActiveConnection = pObjConnexion
.Source = "SELECT * FROM Toto"
.LockType = adLockReadOnly '(ou autre)
.CursorType = adOpenDynamic
.Open
End With
Marsh Posté le 04-04-2005 à 17:11:51
le pb c que je fais de l'asp sans vraiment le connaitre alors que j'ai appris l'asp.net.
bref il me colle une erreur lorsque je declare une variable avec un type.
ce qui fait que je declare tjrs les variables sans le type.
dim mavariable
pour revenir au probleme, je fais :
dim recordset1
ensuite je ne peux pas faire recordset1.CursorType puisque mon objet n'est pas créé, et je ne peux pas le faire lorsque g mis mes donnees dedans car le recorset est alors ouvert!
Marsh Posté le 05-04-2005 à 09:17:56
Aie, ne pas déclarer ces variables... Ca c'est toujours qqch qui m'a fait peur!
Mais bon, peut être que tu peux faire qqch comme:
dim recordset1
et juste avant d'ouvrir le recordset et de setter ses propriétés, tu peux essayer de faire un
Set recordset1 = New ADODB.Recordset
C'est équivalent à faire un Dim Recordset1 as New ADODB.Recordset mais pas de la même manière :-)
A+
Marsh Posté le 04-04-2005 à 09:11:51
je travaille sur des pages asp et je fais des acces a une bdd MS SQL Server.
lorsque je parcours un recordset jusqu'à la fin et que je fais un movefirst ensuite, cela ne fonctionne pas.
code :
if not recordset1 is nothing then
while not rsPhasesAutorisees.eof
...
recordset1.movenext
wend
end if
recordset1.movefirst
erreur :
Microsoft OLE DB Provider for ODBC Drivers
error '80040e18'
Impossible de redémarrer la position de l'ensemble de lignes.
qqu'un peut-il m'aider?