PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Requête INSERT sur SQL SERVER ne marche pas
Requête INSERT sur SQL SERVER ne marche pas
Iniciado por JACK, 06,feb. 2019 10:58 - 10 respuestas
Miembro registrado
11 mensajes
Publicado el 06,febrero 2019 - 10:58
Environnement :
WINDEV 22
SQL SERVER 2014
Connexion : Accès ODBC par OLEDB

Ma connexion est décrite dans l’analyse est fonctionne bien
J'ai importé la description de ma table dans l'analyse sans problème
Mes requêtes sont éditées avec l'éditeur WINDEV

Résultat des requêtes :
Ma requête SELECT fonctionne très bien (Executée par un HExécuteRequête dans le programme)
Ma requête UPDATE fonctionne très bien (Executée par un HExécuteRequête dans le programme)
Problème sur ma requête INSERT : Erreur de l'accès ODBC/OLEDB (provider=MSDASQL) numéro d'erreur = 170129 Echec d'ouverture du fichier.

Je considère que si ma requête UPDATE marche bien, c'est que j'ai bien tous les droits d’écriture sur la base SQL Server
Pourquoi ce problème en INSERT ???
Ci dessous le code d'essai
Procedure MaFenêtre()
Trace(HExécuteRequête(REQ_Liste,hRequêteDéfaut))
REQ_Modification.ParamID_Utilisateur=1
REQ_Modification.ParamPrénom = "DUPONT"
Trace(HExécuteRequête(REQ_Modification,hRequêteDéfaut))
Trace(HExécuteRequête(REQ_NEW,hRequêteDéfaut))

La trace de la requête REQ_NEW renvoie 0

Ci-dessous le code SQL généré par WINDEV
Insert INTO UTILISATEURS
(
Nom,
Prénom
)
VALUES
(
'ESSAI',
'Insert'
)


Merci par avance pour vos réponses
Publicado el 06,febrero 2019 - 11:11
Bonjour,
Essaie peut-être de mettre autre chose qu'Insert dans le prénom?
Miembro registrado
11 mensajes
Publicado el 06,febrero 2019 - 11:40
Je m'en doutais de celle là ;)
Merci, mais cela n'a pas d'incidence, le problème est le même avec "Joséphine" qui n'est pas mon ange gardien en ce moment avec WINDEV :D
Mensaje modificado, 06,febrero 2019 - 11:40
Miembro registrado
11 mensajes
Publicado el 06,febrero 2019 - 15:05
Autre information pour ceux qui réfléchissent à mon problème
Je peux rajouter un enregistrement en passant par WDMap ..... Étrange non ?
Miembro registrado
11 mensajes
Publicado el 06,febrero 2019 - 15:29
Bon je viens de trouver la cause du INSERT qui ne fonctionne pas :
Dans ma table UTILISATEUR j'ai des champs de type bit pour gérer des droits.
Une fois enlevé tous les champs de type bit de ma table, la requête INSERT fonctionne.

Conclusion : WINDEV ne sait pas gérer les requêtes INSERT sur des table SQL SERVER contenant des champ de type Data Bit ;(
et pourtant UPDATE marche, et WDMap permet d’insérer des lignes ..... :( ;( }:(

Programmer 10 fois plus vite ...... chercher 10 fois plus longtemps ...... :p
Miembro registrado
86 mensajes
Publicado el 06,febrero 2019 - 15:51
Personnellement, j'utiliserais hRequêteSansCorrection à la place de hRequêteDéfaut

--
Benoit Neve
Miembro registrado
11 mensajes
Publicado el 06,febrero 2019 - 16:45
bonne idée mais ...... ;(
Procedure MaFenêtre()
Trace(HPrépareRequête(REQ_AJOUT1,MaConnexion1,hRequêteSansCorrection))
Trace(HExécuteRequêteSQL(REQ_AJOUT1))


Erreur retournée sur le HPrépareRequête :
Vous avez appelé la fonction HPrépareRequête .
L'accès ODBC/OLEDB (provider=MSDASQL) a indiqué à HFSQL qu'une erreur avait eu lieu mais n'a pas retourné l'erreur à HFSQL.
Veuillez contacter le support technique PC SOFT
Publicado el 07,febrero 2019 - 08:46
Bonjour,
Pour ma part, je travaille beaucoup avec sqlserver, mais je ne passe jamais par l'analyse WinDev.
Je n'ai aucun soucis sur les Insert avec les champs de type data Bit.

Instruction : HExécuteRequêteSQL(MaRequete,maConnexionSQLServer,hRequêteDéfaut+hRequêteSansCorrection,wRequete)
Miembro registrado
11 mensajes
Publicado el 07,febrero 2019 - 10:19
Merci pour l'info :merci:
je vais tester, mais c'est quand même dommage de se priver des fonctionnalités de l’analyse et de l'éditeur.:(
Miembro registrado
11 mensajes
Publicado el 12,febrero 2019 - 09:26
Bon désolé pour la perte de temps :(
Le problème était de mon coté, mon data bit était déclaré comme NON NULL, et je ne donnais pas de valeur dans la requête INSERT.

Encore désolé de vous avoir fait perdre du temps.
Merci encore
Publicado el 12,febrero 2019 - 16:00
Salut Jack,
Pour ma part j'utilise bien l'analyse Windev sur des fichiers SqlServer, par contre je ne définis pas de connexion sur mes tables et passe toujours par
HExécuteRequêteSQL(MaSourceDeDonnées, Maconnexion, hRequêteSansCorrection, MonScriptSQL)

D'un autre côté j'ai un petit programme qui met à jour SqlServer depuis la description de l'analyse.
Ainsi, je peux utiliser les valeurs par défaut que j'ai enregistré dans l'analyse et qui son reporter côté SqlServer et je n'ai jamais de rubrique non Nullable avec une valeur NULL par défaut...