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
StoredProc:=TSQLStoredProc.Create(nil); 
with StoredProc do try 
//je récupère la connexion d'une autre fenêtre (cette connexion fonctionne puisqu'il n'y a aucun problème avec les TSQLQuery) 
SQLConnection:=DlgImprimeur.SQLConnection; 
StoredProcName:='CALCULDATE' 
Params.Clear; 
Params.CreateParam(ftString, 'p_CDGRP', ptInput); 
Params.CreateParam(ftDateTime, 'p_PDTDEB', ptInput); 
Params.CreateParam(ftDateTime, 'p_PDTFIN', ptInput); 
ParamByName('p_CDGRP').AsString:=cdgrp; 
//dtdeb et dtfin dont des variables de type datetime 
ParamByName('p_PDTDEB').AsDateTime:=dtdeb; 
ParamByName('p_PDTFIN').AsDateTime:=dtfin; 
ExecProc; 
finally 
StoredProc.Free; 
end;

J'utilise une base de données SQL Serveur ; la procédure stockée 'CALCULDATE' est donc écrite en transact SQL.

Mais impossible de l'executer à partir de delphi (je lance dc toutes mes procédures stockées avec TStoredProc, composant avec lequel ça fonctionne parfaitement, mais j'aimerais le faire avec TSQLStoredProc) : une erreur dans les paramètres ('Invalid argument to date encode' pour cet exemple là mais pour d'autres procédures : "index de liste hors limite(0)") m'est spécifiée à chaque fois que j'exécute mon code.

Help me please!

Rom