Bonjour ou Bonsoir

Environnement : Delphi XE2, SQL Server 2005. pour se connecter à SQL Server 2005, j'utilise ODBC avec SQL Server native Client 10.0

Je fais face à un sérieux problème de puis que nous avons acheter Delphi XE2. Je n'arrive pas à exécuter depuis Delphi XE2 une Procédure stockée avec passage de paramètres de type TDateTime. J'ai le message :"Invalid date format" (format de date invalide)

Voici une exemple de code :

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
function VerifieSiDossierSoldeOuPas(NumeroDossier : string; Periode : TDateTime) : Boolean; 
begin 
with DataVisClient do begin 
with Proc_VerifieSiDossierSoldeOuPas do begin 
Prepared := True; 
try 
ParamByName('@NumeroDossier').AsString := NumeroDossier; 
ParamByName('@Periode').AsDateTime := Periode; 
ParamByName('@DossierNonSolde').AsBoolean := True; 
 
if not Prepared then 
Prepare; 
 
ExecProc; 
 
Result := ParamByName('@DossierNonSolde').AsBoolean; 
except 
on E:Exception do 
begin 
MessageBeep(0); 
MessageDlg(E.Message, mtError, [mbAbort], 0); 
Exit; 
end; 
end; 
end; 
end; 
end;
Voici la procédure stockée sous SQL Server 2005


Code sql : 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
USE [PORTEFEUILLE_COMPTA] 
GO 
/****** Objet : StoredProcedure [dbo].[VerifieSiDossierNonSolde;1] Date de génération du script : 04/18/2012 18:10:50 ******/ 
SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ALTER PROCEDURE [dbo].[VerifieSiDossierNonSolde;1] 
( 
@NumeroDossier varchar(8), 
@Periode datetime, 
@DossierNonSolde bit OUTPUT 
) 
 
AS 
 
-- Recherche des comptes clients non Soldés 
 
-- 326. 316. 345. définitive 
 
--DROP TABLE A2 
 
 
SELECT RIGHT(Cpt,7) As Dossier, Cpt, SUM(Debit)-SUM(Credit) As Montant 
INTO #COMPTESOLDE 
FROM ECR_DEF 
WHERE ((Cpt LIKE '326.%'+@NumeroDossier) OR (Cpt LIKE '316.%'+@NumeroDossier) OR (Cpt LIKE '345.%'+@NumeroDossier) OR (Cpt LIKE '341.%'+@NumeroDossier) OR (Cpt LIKE '384.%'+@NumeroDossier) OR (Cpt LIKE '336.%'+@NumeroDossier)) AND 
Moi <= @Periode 
GROUP BY Cpt 
 
UNION ALL 
 
-- 326. 316. 345. provisoire 
 
SELECT RIGHT(Cpt,7) As Dossier, Cpt, SUM(Debit)-SUM(Credit) As Montant 
FROM ECR_PROV 
WHERE ((Cpt LIKE '326.%'+@NumeroDossier) OR (Cpt LIKE '316.%'+@NumeroDossier) OR (Cpt LIKE '345.%'+@NumeroDossier) OR (Cpt LIKE '341.%'+@NumeroDossier) OR (Cpt LIKE '384.%'+@NumeroDossier) OR (Cpt LIKE '336.%'+@NumeroDossier)) AND 
Moi <= @Periode 
GROUP BY Cpt 
IF (@@ERROR <> 0) 
BEGIN 
RETURN 
END 
 
SELECT Dossier, SUM(Montant) AS Montant 
INTO #CPTSOLDE 
FROM #COMPTESOLDE 
GROUP BY Dossier 
 
DROP TABLE #COMPTESOLDE 
 
 
DELETE FROM #CPTSOLDE 
WHERE Montant <= 0 
 
 
IF EXISTS (SELECT Dossier 
FROM #CPTSOLDE 
WHERE Dossier = @NumeroDossier) 
 
SET @DossierNonSolde = 1 
ELSE 
SET @DossierNonSolde = 0 
RETURN 0

Lorsque j'appelle la fonction "VerifieSiDossierSoldeOuPas", j'ai le message d'erreur <<Invalid Date format>>

Quelqu'un peut il m'aider ?
fonkoufobar