IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Sqlexec erreur sans aucun message [WD15]


Sujet :

WinDev

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut Sqlexec erreur sans aucun message
    Bonjour
    J'ai une appli qui se connecte sur un serveur sqlserveur en ODBC,
    la connection semble OK.
    Je fais un select par le biais de sqlexec : le résultat est ok
    en revanche je lance un insert et là il me plante avec N° erreur = 0000 et message erreur = ""
    Or si je reprends ma requête et que je la lance dans l'éditeur de requête sqlserveur, ma requête passe sans problème.
    Du coup mon programme ne fonctionne pas et je ne sais pas quoi dire au client...
    Savez-vous ce que je peux changer ?
    Merci d'avance
    Gancau

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Citation Envoyé par gancau Voir le message
    Savez-vous ce que je peux changer ?
    Bonjour,

    Moi je dirai bien que c'est à la ligne 3 de ton code mais, oupsss, je ne vois pas ton code.

    Peux tu nous le mettre.

    Merci d'avance.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Oui tu as raison...
    mon select qui est OK suivi du insert qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    	sReqsql="select distinct(imgid) from history where imgid in (select imgid from images where idxid in(select idxid from indexdata where natid=1 and idxstatus=10))and hisdat between '"+...
    		DateVersChaîne(SAI_Date_debut)+" "+HeureVersChaîne(SAI_Heure_debut)+"' and '"+...
    		DateVersChaîne(SAI_Date_fin)+" "+HeureVersChaîne(SAI_Heure_fin)+"' and hisstat=10 and usrid!=1"
    	SI  SQLExec(sReqsql, "SELECT_HISTORY") ALORS
    		fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Selection : "+sReqsql)
    		TANTQUE SQLAvance("SELECT_HISTORY") =0
    			sImgid=SQLLitCol("SELECT_HISTORY", 1)
    			LIB_Msg="Traitement image "+sImgid+"....."
     
    			sReqsql="insert into history (imgid, usrid, hisdat, hisact, hisstat) values("+sImgid+",1,'"+DateVersChaîne(SAI_Date_maj)+" "+HeureVersChaîne(SAI_Heure_Maj)+"',3,10)"
    	//		fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Insert test : "+sReqsql)
    			SI SQLExec(sReqsql, "INSERT_HISTORY") ALORS
    				fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Insert OK :"+ sReqsql)
    				SQLFerme("INSERT_HISTORY")
    			SINON
    				SQLInfoGene()
    				Info(NumériqueVersChaîne(gnIdconnectionBdBWize),SQL.Erreur,SQL.MesErreur,SQL.Base,sReqsql)
    				fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Insert KO : "+sReqsql)
    				fFerme(nNumlog)
    				Ferme()
    			FIN
    		FIN
    		SQLFerme("SELECT_HISTORY")

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    et grand merci à toi,
    je re vérifie mais en te donnant le code je m'aperçois qu'en fait j'ai 2 requêtes en même temps, et je me demande si le problème ne vient pas de là...
    Je teste et je reviens poster le résultat de mes tests
    Merci beaucoup
    Gancau

  5. #5
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Bonjour

    Le fait d'avoir deux requêtes ne pose pas de problème si tu utilises bien des noms différents

    Par contre pour SQLInfoGene il vaut mieux préciser le nom la requête concernée

    Le code erreur "00000" indique en fait qu'il n'y a pas d'erreur

  6. #6
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    j'utilise bien 2 noms différents comme tu peux le voir dans le code.
    Mais le code précédent me renvoie une erreur alors que pas ce code dans lequel je ferme la requête précédente avant de lancer une deuxième requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SI  SQLExec(sReqsql, "SELECT_HISTORY") ALORS
    		fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Selection : "+sReqsql)
    		SQLTable("SELECT_HISTORY",TABLE_ImgId)
    		SQLFerme("SELECT_HISTORY")
    		nNumocctable=TABLE_ImgId..Occurrence
    		SI nNumocctable<>0 ALORS
    			POUR i=1 A nNumocctable
    				sImgid=TABLE_ImgId.COL_ImgId[i]
    				sReqsql="insert into history (imgid, usrid, hisdat, hisact, hisstat) values("+sImgid+",1,'"+DateVersChaîne(SAI_Date_maj)+" "+HeureVersChaîne(SAI_Heure_Maj)+"',3,10)"
    				SI SQLExec(sReqsql, "INSERT_HISTORY") ALORS
    					fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Insert OK :"+ sReqsql)
    					SQLFerme("INSERT_HISTORY")
    				SINON
    					SQLInfoGene()
    					Info(NumériqueVersChaîne(gnIdconnectionBdBWize),SQL.Erreur,SQL.MesErreur,SQL.Base,sReqsql)
    					fEcritLigne(nNumlog,DateSys()+"-"+HeureSys()+" : Insert KO : "+sReqsql)
    					fFerme(nNumlog)
    					Ferme()
    				FIN
    			FIN
    		FIN
    		SQLFerme("SELECT_HISTORY")
    fin
    Ce n'est pas la première fois que je remarque que je ne peux pas avoir 2 requêtes ouvertes en même temps. Mais c'est vrai que si je pouvais éviter par la création d'une table, cela m'arrangerait.
    Gancau

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    peux-tu essayer de faire la requête sans mettre de date et d'heure en paramètre mais en champ fixe.

    Par exemple :

    sReqsql="insert into history (imgid, usrid, hisdat, hisact, hisstat) values("+sImgid+",1,'2011-01-28 11:00:00.000',3,10)"

    Ca permettrait de savoir si le format de date et/ou d'heure est erroné dans la requête.

    à bientôt,

    Nicolas

  8. #8
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Tu ne veux vraiment pas essayer SQLInfoGene("INSERT_HISTORY") au lieu de SQLInfoGene() ?
    Histoire d'avoir le message d'erreur ...

  9. #9
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    Désolée pour le retard de réponse...
    Nicolas_Jeanneau
    , je n'ai pas d'erreur de format car j'ai récupéré ma ligne de commande au format texte et je l'ai lancé sous l'analyseur de requete sqlserveur et la requête est OK.
    hpascal
    à la prochaine étape car là j'ai du fermer le projet, je testerai avec le nom de la requête pour essayer d'avoir un message plus explicatif.

    En tout cas, je laisse mon code en passant mon résultat par une table car par ce biais, je n'ai pas d'erreur de lancement.
    Je trouve cela dommage mais avec une seule requête en cours, mon code fonctionne, alors tant pis...

    Merci
    Gancau

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je ne suis pas d'accord : une requête qui fonctionne sous l'analyseur de requête SQL peut ne pas fonctionner dans Windev ... Il suffit juste que le champ passé en variable ne soit pas retranscrit sous le bon format et ta requête va échouer !
    C'est pour cette raison que je voulais que tu testes en mettant des données fixes équivalentes aux variables que tu passes à travers tes paramètres ...

    à bientôt,

    Nicolas

  11. #11
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    Dans le cas expliqué, c'est une requête créée à la volée.
    Il n'y a donc pas de paramètres à cette requête.
    Je créé ma requête dans une variable de type chaine nommée "sReqsql"
    ensuite j'ai récupérée le contenu de cette variable pour le lancer dans l'éditeu de requête.
    ce qui équivaut à des données fixes d'un côté (windev) comme de l'autre (analyseur de requête).
    C'est popur cette raison que je disais que la requête devait fonctionner dans les 2 sens.
    Ce qui a été le cas lors de ma solution de contournement à savoir n'avoir qu'une requpete ouverte en même temps.
    Gancau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Webservice - Erreur en allemand sans aucun sens
    Par mixi dans le forum Web & réseau
    Réponses: 1
    Dernier message: 29/06/2009, 16h46
  2. Réponses: 5
    Dernier message: 21/10/2008, 10h13
  3. [AJAX] [Scriptaculous] Prog sans erreur mais sans aucun résultat
    Par popovitch130 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/05/2008, 13h34
  4. Réponses: 2
    Dernier message: 08/04/2008, 16h29
  5. Réponses: 3
    Dernier message: 16/04/2007, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo