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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE dbo.MIM_LoadDemarques
    Une erreur apparaît :
    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