Blog de Mehdi EL YASSIR

Microsoft Dynamics

Comment attaquer une procedure stockée SQL depuis le code Navision ?

Comment attaquer une procedure stockée SQL depuis le code Navision ?

  • Comments 1

Créer les variables suivantes :

ADOConn : Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Connection 
ADOrs Automation : 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset 
ConnStr : Text 200

 

 

Ajouter le code suivant :
//Connexion ADO
CREATE(ADOConn);
ConnStr :=
'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AdventureWorks;' +
'Data Source=ELYASSIR01\SQLEXPRESS';

ADOConn.Open(ConnStr);
CREATE(ADOrs);

 

//Procèdure stockée

PSSql := STRSUBSTNO('EXEC StoreProcName ''%1'',''%2'',''%3''', Param1, Param2, Param3);


ADOrs.Open();

ADOrs := ADOConn.Execute(PSSql);


ADOrs.Close;
ADOConn.Close;
CLEAR(ADOrs);
CLEAR(ADOConn);

Comments
  • Merci pour l'astuce mais, je vois beaucoup d'inconvénients à ce procédé :

    - il faut stocker le nom du serveur SQL quelquepart (si on change de serveur...)

    - comment tester si la procédure s'est bien déroulée ?

    - dans quel contexte de transaction va s'exécuter la procédure ? (autrement dit, si on aborte avec ERROR() dans Navision après l'exécution de la procédure, est-ce que les données modifiées par cette procédure subissent un rollback ?)

    - on sort de la logique métier Navision une fois dans la procédure stockée, attention <<danger>> (donc la procédure stockée doit être limitée à manipuler des données hors dehors des tables Navision)

    Voila !
Page 1 of 1 (1 items)
Leave a Comment
  • Please add 3 and 1 and type the answer here:
  • Post