dread_loque
Messages postés16Date d'inscriptionmercredi 11 avril 2007StatutMembreDernière intervention21 mai 2007
-
18 mai 2007 à 14:58
dread_loque
Messages postés16Date d'inscriptionmercredi 11 avril 2007StatutMembreDernière intervention21 mai 2007
-
21 mai 2007 à 10:25
Bonjour tout le monde,
Aujourd'hui un autre problème (non, je ne me suis pas fixé un objectif "un jour, un problème" mais bon...).
Voilà, j'ai cette requête qui ne fonctionne pas, mais l'idée est là, et j'aimerais savoir s'il est possible de faire en gros s'que j'veux faire avec cette requete mais en différent ^^
Voici la requete :
//Requete de mise à jour des données dans la base
m_sSQLRequest = "UPDATE Variables AS v1 "+ "SET v1.ValOffset(SELECT v2.LngVariable FROM Variables AS v2 WHERE v2.NumOrdreVariable v1.NumOrdreVariable - 1) "+
"WHERE v1.IdStructure = " + identStruct +" "+
"AND v1.NumOrdreVariable > 1";
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 18 mai 2007 à 15:38
Salut,
Si tu disais ce qu'elle doit faire au juste parce que là c'est pas évident (du moins pour moi).
Enfin là à vue de nez je dirais que tu devrais regarder du côté de la clause FROM si tes données doivent venir d'une autre table (http://msdn2.microsoft.com/en-us/library/aa260662(SQL.80).aspx).
Sinon les requêtes paramétrées c'est pas mal au lieu de concaténer, à moins d'aimer avoir un problème de sécurité par injection SQL.
dread_loque
Messages postés16Date d'inscriptionmercredi 11 avril 2007StatutMembreDernière intervention21 mai 2007 18 mai 2007 à 15:49
Au niveau de l'injection je m'en fou un peu, puisque c'est une application dévellopée dans mon service, POUR mon service ^^ Ils ne gagneraient pas grand chose à faire de l'injection à part foiré leur base de données ^^
Sinon en fait le truc important c'est ça :
//Requete de mise à jour des données dans la base
m_sSQLRequest = "UPDATE Variables AS v1 "+
"SET v1.ValOffset = (SELECT v2.LngVariable
FROM Variables AS v2 WHERE
v2.NumOrdreVariable = v1.NumOrdreVariable - 1) "+
"WHERE v1.IdStructure = " + identStruct +" "+
"AND v1.NumOrdreVariable > 1";
Je cherche à récupérer la taille de la variable qui est juste avant celle que je suis en train de manipuler (d'où le -1)...
J'éspère que c'est plus clair et que vous pourrez m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 18 mai 2007 à 16:53
Ha bon, les attaquants opérant de l'intérieur ne sont pas à prendre en compte ? J'espère que tu ne tombera jamais sur un futur ex-employé mécontent qui voudra partir sur un coup d'éclat. Sans parler des fausses manips involontaires...
Pour la requête je vois à peu prêt la logique mais sous Access...
Tu devrais plutot poser la question sur SQLFr.
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 19 mai 2007 à 19:53
tiens j'ai essyé parce que ca m'interessait
et OUI on peut parfaitement integré des sous-requetes dans une requete update
moi j'ai testé la requete suivante et ca marche
update
Contact
set
contactName
= (select
ContactName
from Contact
where ContactID
=1
)where
ContactID
=10
donc pour toi cela devrait donner ...
UPDATE
Variables
set
v1
.ValOffset
=(
select v2
.LngVariable
from variables
where v1
.IdStructure
= " + identStruct +"
AND v1
.NumOrdreVariable
> 1
) where
v1
.ValOffset
=tavaleur
derniere clause where a ajouter pour dire quand appliquer la valeur
un conseil utiliser les requetes parametrées
(je crois qu'il va falloir faire un petit tuto sur les requetes parametrées vu le nb de personnes qui en auraient besoin)
dread_loque
Messages postés16Date d'inscriptionmercredi 11 avril 2007StatutMembreDernière intervention21 mai 2007 21 mai 2007 à 10:22
Merci pour vos réponses
Je sais bien qu'il faut que j'utilise les requêtes paramétrées, j'essaie de me justifier mais en fait j'ai juste la flemme !
Parce que ça va me forcer à reprendre toutes les requêtes de mon code (et y'en a une tripottée) et que j'ai la cagne