DS2 – Package DS2 et SQLSTMT
Le code ci-dessous permet de créer un package DS2 personnalisé utilsant le package SQLSTMT.
Un package DS2 est un ensemble de méthodes et de variables utilisables dans les programmes DS2. Un package DS2 prend en charge un ensemble de tâches connexes et est conçu pour être réutilisé. Le package SQLSTMT fournit un moyen de transmettre des instructions FedSQL à un SGBD pour exécution et d'accéder au jeu de résultats renvoyé par le SGBD.
Dans l'exemple ci-dessous le package "monpkg" est utilisé en tant que modèle pour construire une instance du package SQLSTMT.
La requête est envoyé à une base SQLServer via ODBC et le pilote Datadirect fourni par SAS.
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 |
proc ds2; drop package monpkg; run; quit; proc ds2; package monpkg; declare varchar(100) str; dcl package sqlstmt stmt; method monpkg(varchar(100) str); this.str = str; end; method execmonsql(); dcl int rc; declare varchar(100) champC; stmt = _new_ sqlstmt(str, 'driver=sql; conopts=(DRIVER=ODBC;DB=SQLServerWire;UID=SAS;PWD=PASSWORD)'); stmt.execute(); rc = stmt.fetch(); do while(rc = 0); champC = stmt.getVarChar(3); put champC; rc = stmt.fetch(); end; end; endpackage; data _null_; method init(); declare package monpkg a2('select a,b,"c d" from Customers;'); a2.execmonsql(); end; enddata; run; quit; |