Bonjour ,

Configuration :

Delphi Xe2 Pro
Composant Anydac
Os Windows 7 64bit

Problème :

Je suis connecté grâce au composant AnyDac a une base Sybase en local , je veux utiliser le composant TADScript pour exécuter des fichiers SQL.

Sources :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 for Fichier in ListFichierSQL do         // ajout des maj de base
      begin
        ScriptMAJ_V2.SQLScriptFileName := Fichier ;
        if ScriptMAJ_V2.ValidateAll then
        ScriptMAJ_V2.ExecuteAll ;
      end;
Lors de l’exécution de ce script , j'ai l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Exception 'first chance' à $755BC42D. Classe d'exception EASANativeException avec un message '[AnyDAC][Phys][ODBC][Sybase][ODBC Driver][Adaptive Server Anywhere]Syntax error near '(end of line)' on line 4'. Processus ProgReprise.exe (5344)
Je sais que mon fichier est bon car je l'ai au préalable exécuté sur Sysbase central

Fichier :

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
alter function Sysggm.F_BAIL_ACTIF(in dBAI_DATD date,in dBAI_DATF date,in dBAI_DEPLOC date,in dDATE_REF date)
returns smallint
--|-------------------------------------------------------------------------------------------------------------------------------|--
--| F_SommeCA
--| Cette fonction renvoit la somme du CA d un lot/locataire pour un année et un type de ca donné
--|-------------------------------------------------------------------------------------------------------------------------------|--
begin
  declare iActif smallint;
  if((dBAI_DATD > dDATE_REF) and(dBAI_DATF <= dDATE_REF)) or((dBAI_DATD <= dDATE_REF) and(dBAI_DATF >= dDATE_REF)) then
    //  if(dBAI_DATD<=dDATE_REF) and(dDATE_REF<=dBAI_DATF) then
    set iActif=1
  else
    set iActif=0
  end if;
  if(dBAI_DEPLOC <> null) then
    if(dBAI_DATD <= dDATE_REF) and(dDATE_REF <= dBAI_DEPLOC) then
      set iActif=1
    else
      set iActif=0
    end if
  end if;
  return(iActif)
end
Est-ce que quelqu’un a une idée , je pense a un mauvais formatage de fichier ou un truc du genre .

Merci d'avance