|
Requete INSERT fonctionnant sous W19 mais plus sous W20 ? |
Débuté par Denis, 27 mar. 2015 15:20 - 5 réponses |
| |
| | | |
|
| |
Posté le 27 mars 2015 - 15:20 |
Bonjour,
J'ai une erreur sur une requete SQL d'insertion depuis que je suis passé en Windev 20 ?
Voici l'erreur : Impossible de transformer la donnée dans le type de la rubrique <WSYNC.Code> code erreur : 70500 code erreur wd55 : 500 module wd200hf.dll WDHF version 20.0.85.0
Voici le code qui pose problème :
SI HExécuteRequêteSQL(MaRequete,hRequêteSansCorrectionHF,"INSERT INTO Synchro_Temp "+MonSQL+"") ALORS HAnnuleAlias("wSYNC") MonSQL="SELECT Synchro_Temp.Code FROM Synchro_Temp WHERE Utilisateur='"+wUser+"' AND Synchro_Temp.Code>0" ////FICHIER CLIENTS_PROSPECTS HAlias(Clients_Prospects,"wSYNC") HChangeConnexion("wSYNC",CnxLocale) HChangeNom("wSYNC","Clients_Prospects") HSupprimeTout(wSYNC) SI PAS HExécuteRequêteSQL(MaRequeteSYNC,hRequêteSansCorrectionHF,"INSERT INTO WSYNC SELECT * FROM Clients_Prospects WHERE Clients_Prospects.Code IN ("+MonSQL+")") ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN HAnnuleAlias("WSYNC")
c'est cette requete qui génére l'erreur :
HExécuteRequêteSQL(MaRequeteSYNC,hRequêteSansCorrectionHF,"INSERT INTO WSYNC SELECT * FROM Clients_Prospects WHERE Clients_Prospects.Code IN ("+MonSQL+")")
mais j'ai mis le code avant pour que vous compreniez avec les alias etc ... En fait je synchronise un poste distant avec des fichiers HF classique et mon serveur HFSQL
Si qq'un à une idée, merci d'avance, Denis. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 mars 2015 - 16:24 |
Bonjour, Tu avais de la chance que ces requêtes fonctionnent avec la version 19... Dans un Insert il faut toujours préciser les colonnes de la table. De plus je te déconseilles fortement un SELECT * ici. Si jamais le schéma d'une des tables change (ajout d'une colonne, changement d'ordre des colonnes), soit la requête plante (si tu as de la chance), soit les données vont dans les mauvaises colonnes.
Bref si tu corriges ces requêtes en spécifiant les colonnes dans la section INSERT et dans la section SELECT tu ne devrais plus avoir d'erreur.
Frédéric.
"Denis" a écrit dans le message de groupe de discussion : 2015a2bc7c62751a6f1e73e4b6d249cbd14d@news.pcsoft.fr...
Bonjour,
J'ai une erreur sur une requete SQL d'insertion depuis que je suis passé en Windev 20 ?
Voici l'erreur : Impossible de transformer la donnée dans le type de la rubrique <WSYNC.Code> code erreur : 70500 code erreur wd55 : 500 module wd200hf.dll WDHF version 20.0.85.0
Voici le code qui pose problème :
SI HExécuteRequêteSQL(MaRequete,hRequêteSansCorrectionHF,"INSERT INTO Synchro_Temp "+MonSQL+"") ALORS HAnnuleAlias("wSYNC") MonSQL="SELECT Synchro_Temp.Code FROM Synchro_Temp WHERE Utilisateur='"+wUser+"' AND Synchro_Temp.Code>0" ////FICHIER CLIENTS_PROSPECTS HAlias(Clients_Prospects,"wSYNC") HChangeConnexion("wSYNC",CnxLocale) HChangeNom("wSYNC","Clients_Prospects") HSupprimeTout(wSYNC) SI PAS HExécuteRequêteSQL(MaRequeteSYNC,hRequêteSansCorrectionHF,"INSERT INTO WSYNC SELECT * FROM Clients_Prospects WHERE Clients_Prospects.Code IN ("+MonSQL+")") ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN HAnnuleAlias("WSYNC")
c'est cette requete qui génére l'erreur :
HExécuteRequêteSQL(MaRequeteSYNC,hRequêteSansCorrectionHF,"INSERT INTO WSYNC SELECT * FROM Clients_Prospects WHERE Clients_Prospects.Code IN ("+MonSQL+")")
mais j'ai mis le code avant pour que vous compreniez avec les alias etc ... En fait je synchronise un poste distant avec des fichiers HF classique et mon serveur HFSQL
Si qq'un à une idée, merci d'avance, Denis. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 mars 2015 - 17:26 |
Merci beaucoup, je vais tester cela !!! |
| |
| |
| | | |
|
| | |
| |
Posté le 30 mars 2015 - 09:54 |
Bon et bien cela ne fonctionne pas mieux ... J'ai revérifier mon analyse et mes alias et tout est ok alors là je ne comprends pas ... Cela pourrait-il être lié à mon installation de windev 20 ?
Voici la requete modifiée mais qui ne passe toujours pas :
MonSQL=[ INSERT INTO CLP (Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations) SELECT Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations FROM Clients_Prospects WHERE Clients_Prospects.Code IN (SELECT Synchro_Temp.Code FROM Synchro_Temp WHERE Utilisateur='%1' AND Synchro_Temp.Code>0) ] |
| |
| |
| | | |
|
| | |
| |
Posté le 30 mars 2015 - 09:57 |
Bon et bien j'ai testé mais cela ne passe pas mieux, même erreur ... Cela serait-il dû à mon install de windev 20 (mal installé ?)
Voici la requete modifiée qui ne passe toujours pas :
MonSQL=[ INSERT INTO CLP (Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations) SELECT Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations FROM Clients_Prospects WHERE Clients_Prospects.Code IN (SELECT Synchro_Temp.Code FROM Synchro_Temp WHERE Utilisateur='%1' AND Synchro_Temp.Code>0) ] |
| |
| |
| | | |
|
| | |
| |
Posté le 31 mars 2015 - 07:39 |
"Qui ne passe pas"... Mais quel est donc le message d'erreur ?
Frédéric.
"Denis" a écrit dans le message de groupe de discussion : 2015b7dcb24307d24baf0af59bedfe09b8a1@news.pcsoft.fr...
Bon et bien cela ne fonctionne pas mieux ... J'ai revérifier mon analyse et mes alias et tout est ok alors là je ne comprends pas ... Cela pourrait-il être lié à mon installation de windev 20 ?
Voici la requete modifiée mais qui ne passe toujours pas :
MonSQL=[ INSERT INTO CLP (Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations)
SELECT Code, DateCreation, Societe, Adresse1, CP, Ville, Pays, Tel, Fax, Email, Zone, Groupe, Activité1, Activité2, Intérêt, Intensité_Com, Représentant, NatureLib, Suspendu, Assistante, Observation, DateModif, Etat, Langue, SaisiePar, NomPC, Origine, TxtOrigine, SiteWeb, Enseigne, Règlement, RemiseEXPO, BFA, BFR, Escompte, FrancoPort, ForfaitFrais, Interdit, CodePayeur, Flag, FlagTHG, EMailInterdit, WebRevendeur, HAM1, HAM2, HPM1, HPM2, HNonStop, HObservations FROM Clients_Prospects WHERE Clients_Prospects.Code IN (SELECT Synchro_Temp.Code FROM Synchro_Temp WHERE Utilisateur='%1' AND Synchro_Temp.Code>0) ] |
| |
| |
| | | |
|
| | | | |
| | |
|