Problème d'apostrophes et de variables date
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 :
Code:
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 tout essayé afin d'essayer de pouvoir insérer le caractère ' avant et après les variables dates mais rien ne fonctionne.
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 :
Code:
EXECUTE dbo.MIM_LoadDemarques
Une erreur apparaît :
Citation:
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.
Cependant, l'insert est quand même effectué, mais je n'ai pas de valeur dans les champs date et prix.
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 :D