OVH Cloud OVH Cloud

clause WHERE GUID

6 réponses
Avatar
SOW Olivier
Bonjour,

j'utilise ADO pour faire des mises a jour sur de tuples.
pour identifier ces tuples j'utilise un GUID (numero unique)
j'execute donc une requete du style:
UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
ou x represente le GUID.
jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
J'ai supprimé cet index pour des raisons de performance (la base devait
énorme a cause des index)
et maintenant mes requetes ne font plus leur travaillent:
la requete s'excute sans erreur, mais ne modifie aucun enregistrement
(j'ai pourtant bien vérifié mes GUID)
le plus drole c'est que si jamais j'ajoute une autre clause dans la
condition WHERE,
la requete fonctionne.
si j'enleves les quotes ca fonctionne aussi,
seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
et si j'enleve les quote bah elle marche plus sous SQL SERVER :(

si quelqu'un pouvait m'aider ...
merci à vous

6 réponses

Avatar
Pierre CFI [mvp]
bonjour
mais ton fameux guid il est num ou texte ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"SOW Olivier" a écrit dans le message de news:
Bonjour,

j'utilise ADO pour faire des mises a jour sur de tuples.
pour identifier ces tuples j'utilise un GUID (numero unique)
j'execute donc une requete du style:
UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
ou x represente le GUID.
jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
J'ai supprimé cet index pour des raisons de performance (la base devait
énorme a cause des index)
et maintenant mes requetes ne font plus leur travaillent:
la requete s'excute sans erreur, mais ne modifie aucun enregistrement
(j'ai pourtant bien vérifié mes GUID)
le plus drole c'est que si jamais j'ajoute une autre clause dans la
condition WHERE,
la requete fonctionne.
si j'enleves les quotes ca fonctionne aussi,
seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
et si j'enleve les quote bah elle marche plus sous SQL SERVER :(

si quelqu'un pouvait m'aider ...
merci à vous




Avatar
SOW Olivier
euh ... C'est un GUID, un numero de replication (type de
données:"Numérique"->taille du champ:"N° de
réplication" dans ACCESS)
donc c'est pas tout a fait un num ou un text ...
c'est comme si tu me demandais si les champs DATE sont des champs num ou
text :)

"Pierre CFI [mvp]" a écrit dans le message de
news:
| bonjour
| mais ton fameux guid il est num ou texte ?
|
| --
| Pierre CFI
| MVP Microsoft Access
| Mail : http://cerbermail.com/?z0SN8cN53B
|
| Site pour bien commencer
| http://users.skynet.be/mpfa/
| Site perso
| http://access.cfi.free.fr
| "SOW Olivier" a écrit dans le message de
news:
| > Bonjour,
| >
| > j'utilise ADO pour faire des mises a jour sur de tuples.
| > pour identifier ces tuples j'utilise un GUID (numero unique)
| > j'execute donc une requete du style:
| > UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
| > ou x represente le GUID.
| > jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
| > J'ai supprimé cet index pour des raisons de performance (la base devait
| > énorme a cause des index)
| > et maintenant mes requetes ne font plus leur travaillent:
| > la requete s'excute sans erreur, mais ne modifie aucun enregistrement
| > (j'ai pourtant bien vérifié mes GUID)
| > le plus drole c'est que si jamais j'ajoute une autre clause dans la
| > condition WHERE,
| > la requete fonctionne.
| > si j'enleves les quotes ca fonctionne aussi,
| > seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
| > et si j'enleve les quote bah elle marche plus sous SQL SERVER :(
| >
| > si quelqu'un pouvait m'aider ...
| > merci à vous
| >
| >
|
|
Avatar
Pierre CFI [mvp]
oui (j'ai pris en cours) mais que viennent faire les quotes ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"SOW Olivier" a écrit dans le message de news:
euh ... C'est un GUID, un numero de replication (type de
données:"Numérique"->taille du champ:"N° de
réplication" dans ACCESS)
donc c'est pas tout a fait un num ou un text ...
c'est comme si tu me demandais si les champs DATE sont des champs num ou
text :)

"Pierre CFI [mvp]" a écrit dans le message de
news:
| bonjour
| mais ton fameux guid il est num ou texte ?
|
| --
| Pierre CFI
| MVP Microsoft Access
| Mail : http://cerbermail.com/?z0SN8cN53B
|
| Site pour bien commencer
| http://users.skynet.be/mpfa/
| Site perso
| http://access.cfi.free.fr
| "SOW Olivier" a écrit dans le message de
news:
| > Bonjour,
| >
| > j'utilise ADO pour faire des mises a jour sur de tuples.
| > pour identifier ces tuples j'utilise un GUID (numero unique)
| > j'execute donc une requete du style:
| > UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
| > ou x represente le GUID.
| > jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
| > J'ai supprimé cet index pour des raisons de performance (la base devait
| > énorme a cause des index)
| > et maintenant mes requetes ne font plus leur travaillent:
| > la requete s'excute sans erreur, mais ne modifie aucun enregistrement
| > (j'ai pourtant bien vérifié mes GUID)
| > le plus drole c'est que si jamais j'ajoute une autre clause dans la
| > condition WHERE,
| > la requete fonctionne.
| > si j'enleves les quotes ca fonctionne aussi,
| > seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
| > et si j'enleve les quote bah elle marche plus sous SQL SERVER :(
| >
| > si quelqu'un pouvait m'aider ...
| > merci à vous
| >
| >
|
|




Avatar
SOW Olivier
bah ils sont necessaires dans la requete,
je les supprime, ma requete ne fonctionne plus sous SQL SERVER

"Pierre CFI [mvp]" a écrit dans le message de
news:OXZ9I$
| oui (j'ai pris en cours) mais que viennent faire les quotes ?
|
| --
| Pierre CFI
| MVP Microsoft Access
| Mail : http://cerbermail.com/?z0SN8cN53B
|
| Site pour bien commencer
| http://users.skynet.be/mpfa/
| Site perso
| http://access.cfi.free.fr
| "SOW Olivier" a écrit dans le message de
news:
| > euh ... C'est un GUID, un numero de replication (type de
| > données:"Numérique"->taille du champ:"N° de
| > réplication" dans ACCESS)
| > donc c'est pas tout a fait un num ou un text ...
| > c'est comme si tu me demandais si les champs DATE sont des champs num ou
| > text :)
| >
| > "Pierre CFI [mvp]" a écrit dans le message de
| > news:
| > | bonjour
| > | mais ton fameux guid il est num ou texte ?
| > |
| > | --
| > | Pierre CFI
| > | MVP Microsoft Access
| > | Mail : http://cerbermail.com/?z0SN8cN53B
| > |
| > | Site pour bien commencer
| > | http://users.skynet.be/mpfa/
| > | Site perso
| > | http://access.cfi.free.fr
| > | "SOW Olivier" a écrit dans le message de
| > news:
| > | > Bonjour,
| > | >
| > | > j'utilise ADO pour faire des mises a jour sur de tuples.
| > | > pour identifier ces tuples j'utilise un GUID (numero unique)
| > | > j'execute donc une requete du style:
| > | > UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
| > | > ou x represente le GUID.
| > | > jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait
bien.
| > | > J'ai supprimé cet index pour des raisons de performance (la base
devait
| > | > énorme a cause des index)
| > | > et maintenant mes requetes ne font plus leur travaillent:
| > | > la requete s'excute sans erreur, mais ne modifie aucun
enregistrement
| > | > (j'ai pourtant bien vérifié mes GUID)
| > | > le plus drole c'est que si jamais j'ajoute une autre clause dans la
| > | > condition WHERE,
| > | > la requete fonctionne.
| > | > si j'enleves les quotes ca fonctionne aussi,
| > | > seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
| > | > et si j'enleve les quote bah elle marche plus sous SQL SERVER :(
| > | >
| > | > si quelqu'un pouvait m'aider ...
| > | > merci à vous
| > | >
| > | >
| > |
| > |
| >
| >
|
|
Avatar
Fred BROUARD
tes baisses de perf et la grosseur de la base sont du au choix d'une clef de type GUID qui est énorme à stocker.
Tu obtiendra des perf et une faible taille de BD en utilisant un entier auto incrémenté.

Il n'y a pas d'intérêt à utiliser un GUID en dehors du fait d'unicité externe des données comme la réplication !
Et même dans ce cas, utiliser un GUID en tant que clef est une mauvaise chose !

A +

SOW Olivier a écrit:
Bonjour,

j'utilise ADO pour faire des mises a jour sur de tuples.
pour identifier ces tuples j'utilise un GUID (numero unique)
j'execute donc une requete du style:
UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
ou x represente le GUID.
jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
J'ai supprimé cet index pour des raisons de performance (la base devait
énorme a cause des index)
et maintenant mes requetes ne font plus leur travaillent:
la requete s'excute sans erreur, mais ne modifie aucun enregistrement
(j'ai pourtant bien vérifié mes GUID)
le plus drole c'est que si jamais j'ajoute une autre clause dans la
condition WHERE,
la requete fonctionne.
si j'enleves les quotes ca fonctionne aussi,
seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
et si j'enleve les quote bah elle marche plus sous SQL SERVER :(

si quelqu'un pouvait m'aider ...
merci à vous




--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************

Avatar
SOW Olivier
oui merci je sais cela, malheuresement j'ai besoin d'unicité
car plusieurs bases peuvent etre mergée.
Quelle solution aurais-je dans ce cas la, sachant que je me sers de ce GUID
comme clé étrangere egalement (et donc tout ce que ca comporte pour un
merge) ?

ce que je ne comprends pas c'est pourquoi ma requete ne fonctionne plus.


"Fred BROUARD" a écrit dans le message de
news:
| tes baisses de perf et la grosseur de la base sont du au choix d'une clef
de type GUID qui est énorme à stocker.
| Tu obtiendra des perf et une faible taille de BD en utilisant un entier
auto incrémenté.
|
| Il n'y a pas d'intérêt à utiliser un GUID en dehors du fait d'unicité
externe des données comme la réplication !
| Et même dans ce cas, utiliser un GUID en tant que clef est une mauvaise
chose !
|
| A +
|
| SOW Olivier a écrit:
| > Bonjour,
| >
| > j'utilise ADO pour faire des mises a jour sur de tuples.
| > pour identifier ces tuples j'utilise un GUID (numero unique)
| > j'execute donc une requete du style:
| > UPDATE maTable SET monChamp=maValeur WHERE monGuid='{xxxxxxxx}'
| > ou x represente le GUID.
| > jusqu'a présent j'avais un INDEX sur ce GUID et tout ce passait bien.
| > J'ai supprimé cet index pour des raisons de performance (la base devait
| > énorme a cause des index)
| > et maintenant mes requetes ne font plus leur travaillent:
| > la requete s'excute sans erreur, mais ne modifie aucun enregistrement
| > (j'ai pourtant bien vérifié mes GUID)
| > le plus drole c'est que si jamais j'ajoute une autre clause dans la
| > condition WHERE,
| > la requete fonctionne.
| > si j'enleves les quotes ca fonctionne aussi,
| > seul hic ma requete doit etre compatible JET(ACCESS) & SQL SERVER
| > et si j'enleve les quote bah elle marche plus sous SQL SERVER :(
| >
| > si quelqu'un pouvait m'aider ...
| > merci à vous
| >
| >
|
| --
| Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
| Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
| Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
| ****************** mailto: ******************
|