[VB6] - CursorType - LockType et order by

- CursorType - LockType et order by [VB6] - Programmation

Marsh Posté le 12-02-2001 à 14:18:26    

mon problème :  
j'ai  
...
with rs
  .CursorType = adOpenKeyset
  .LockType = adLockPessimistic
  .Open "select * from dossier where numclient = '" & num_client & " ' order by datemodif"
end with
...
si je laisse "order by datemodif"
le "Locktype" passe automatiquement à "dLockReadOnly" ce qui me rend mes mises-à-jours impossibles !
et CursorType passe à "adOpenForwardOnly"
 
 
pourquoi ?

Reply

Marsh Posté le 12-02-2001 à 14:18:26   

Reply

Marsh Posté le 12-02-2001 à 14:59:08    

Oui, c'est normal...
 
Un "order by" fait que ODBC ne sais plus à quel enregistrement correspond chaque ligne.
 
D'où le tartine que j'ai mis dans le topic "Problème VB6 at ADO"
 
Je te l'avais déjà dit d'ailleur :D
 
Ne JAMAIS se servir des fonctions rs.update etc, car il y a un grand nombre de cas où ça ne passe pas.
 
Et les cas où ça passe, tu n'a aucune garantie que tu ne vas pas provoquer une erreur...
 
Toujours faire les modifs de la base à la mano... Oui, c'est lourd et chiant, mais il n'y a pas de solution plus simple...
 
En bidouillant tu trouveras toujours une parade (genre recopier ton RS non trié dans un objet LISTE et faire un tri dans l'objet... et hériter les modifs au rs...)
 
Mais c'est tout pourri et tu va au devant d'une instabilité certaine.

Reply

Marsh Posté le 12-02-2001 à 15:09:57    

oui tu as raison
j'ai détaillé le problème et odbc change de lui même la valeur de CursorType puis de Loctype!
sauf si je demande le tri sur le champ utilisé dans la clause Where !!!!
 
il vaut mieux utiliser un cnx.execute "update ..." , non ?

 

--Message édité par Hepil--

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed