PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Duplication de données après un INSERT sql standard :-(
Duplication de données après un INSERT sql standard :-(
Iniciado por Gilles MAIRE, 03,mar. 2020 16:28 - 3 respuestas
Miembro registrado
8 mensajes
Publicado el 03,marzo 2020 - 16:28
Bonjour à tous,

Je débute en Windev (mais pas en programmation ;-)) et je suis confronté à une inconnue. Après un Insert SQL standard, je me retrouve avec plusieurs doublons en base de données jusqu'à 10.

SI PAS HExécuteRequêteSQL(ReqInsertRDV,StringBuild("INSERT INTO Agenda (Titre, DateDébut, DateFin,...., CONTENU) VALUES ('%1','%2','%3','%4')", "[Internet] Patient Inconnu", FormatDateHeureLaravel2Windev(RendezVous.date_debut), FormatDateHeureLaravel2Windev(RendezVous.date_fin), ....., RendezVous.user.matricule+";"+RendezVous.user.lastname+";"+RendezVous.user.firstname+";"+RendezVous.user.cellphone+";"+RendezVous.user.email+";"+RendezVous.reason.label)) ALORS
Trace(HErreurInfo())
SINON
HForceEcriture(AgendaEvénement)
Temporisation(0)
Trace("RDV créé [id:"+RendezVous.id+"] avec succès dans EMED")
FIN
HLibèreRequête(ReqInsertRDV)


Nota : Je suis en Windev 24 et la base de données HFsql est en client/serveur.
Miembro registrado
261 mensajes
Publicado el 03,marzo 2020 - 17:00
Bonjour Gilles,

Essai cette syntaxe :

R01 est une Source dede Données
T01 est une chaîne = "INSERT INTO Agenda (Titre, DateDébut, DateFin) VALUES ('%1','%2','%3')"
MonID est un entier = 1
SELON HExécuteRequêteSQL(R01,HFSQLCS,ChaîneConstruit(T01,"MonTitre","20200303","20200304"))
CAS Faux : Erreur(HErreurInfo(hErrComplet))
CAS Vrai : Info("RDV créé [id:"+MonID+"] avec succès dans EMED")
FIN
HAnnuleDéclaration(R01)


Ne pas oublié de fournir le nom de ta connexion HF C/S. Dans mon exemple c'est "HFSQLCS".

--
Baptiste CLOART
Freelance
b.cloart@blv-tech.com
06.88.74.80.65
www.linkedin.com/in/cloart
www.blv-tech.com
Miembro registrado
8 mensajes
Publicado el 03,marzo 2020 - 20:53
Merci Baptiste, j'avoue ne pas comprendre la différence. C'est plus propre en terme de lisibilité mais il n'y a pas de réelle différence fonctionnelle ?
Miembro registrado
261 mensajes
Publicado el 04,marzo 2020 - 09:47
Bonjour Gilles,

Si tu a toujours un problème de multiple insertion de données dans ta BDD c'est qu'il y a une boucle dans ton code quelque part.

Le message "Info("RDV créé [id:"+MonID+"] avec succès dans EMED")" s'affiche qu'une seul fois ? Si oui alors il ne peux y avoir qu'un seul enregistrement inséré dans la BDD. Si non alors il y a une boucle quelque part.

--
Baptiste CLOART
Freelance
b.cloart@blv-tech.com
06.88.74.80.65
www.linkedin.com/in/cloart
www.blv-tech.com