Bonjour à tous !
Je me présente, Valentin, étudiant en BTS Services Informatiques aux Organisations, spécialité Développement et je suis actuellement en stage en entreprise.
Un de mes projets consiste à développer une application en C# afin de générer des fichiers (PDF et TXT principalement).
Cependant, le contenu de ses fichiers est le résultat de différentes requêtes que je créer et teste sur DATABASE .NET - SQL SERVER.
Venons-on aux faits :
- Premièrement, j'ai créé une procédure stockée qui vide une table et la remplie par la suite grâce à des requêtes, qui récupère entre autre des dates. Le problème avec ses dates est que lorsque j'effectue mon insert, les valeurs insérées sont les valeurs par défaut quand la valeur du champs est "incorrecte" (c-à-d '1900/01/01').
Après multitude de tests, je me suis rendu compte que l'insert ne pouvait fonctionner que si les dates étaient mises entre apostrophes.
Voilà ma procédure :
J'ai tout essayé afin d'essayer de pouvoir insérer le caractère ' avant et après les variables dates mais rien ne fonctionne.
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
24
25
26
27
28
29 CREATE PROCEDURE MIM_LoadDemarques AS BEGIN DECLARE @leNumPromo INT DECLARE @leCodeArt VARCHAR(20) DECLARE @laSaison INT DECLARE @laDateDeDebut VARCHAR(10) DECLARE @laDateDeFin VARCHAR(10) DECLARE @lePrix FLOAT SET @leNumPromo = 0 -- TRUNCATE TABLE Mim_Demarques WHILE (@leNumPromo<=10) BEGIN SELECT @leCodeArt = substring(rtrim(codearticle),1,10), @laSaison = saison, @laDateDeDebut = dbo.MIM_ExtraitDateDebutFR(@leCodeArt,@leNumPromo), @laDateDeFin = dbo.MIM_ExtraitDateFinFR(@leCodeArt,@leNumPromo), @lePrix = dbo.MIM_ExtraitPrixPromo(@leCodeArt,@leNumPromo) FROM article WHERE codearticle = '013888801001' INSERT INTO MIM_Demarques (CodeProduit, Saison, DateDebut, DateFin, Prix) VALUES (@leCodeArt,@laSaison,@laDateDeDebut,@laDateDeFin,@lePrix) SET @leNumPromo = (@leNumPromo + 1) END END
J'ai cherché sur google et sur d’innombrables forums mais personne n'a le même problème que moi (langage, logiciel).
Ma question est donc de savoir si vous savez comment échapper une quote dans le code.
- Mon autre problème est que lorsque j'exécute la procédure :
Une erreur apparaît :
Code : Sélectionner tout - Visualiser dans une fenêtre à part EXECUTE dbo.MIM_LoadDemarques
Cependant, l'insert est quand même effectué, mais je n'ai pas de valeur dans les champs date et prix.ErrorCode: -2146232060
[.Net SqlClient Data Provider]
Number: 245, Class: 16, State: 1, Line: 8
ErrorMessage: Erreur de syntaxe lors de la conversion de la valeur varchar '*' vers une colonne de type de données int.
La ligne 8 correspond à la déclaration d'une varaible FLOAT . Et nul part je traite le caractère '*'.
Je pense que cette erreur est liée à mon premier problème, mais si vous avez une idée, je suis preneur !
J'espère avoir été assez clair, mais si vous avez des questions, n'hésitez pas.
Vous remerciant par avance,
Valentin
Partager