2014-07-16 4 views
7

Questo fa parte del mio frammento di codiceInserire le variabili in SAS usando JAVA (IOM Bridge). Devo usare CORBA stub e JDBC o c'è qualche altra alternativa?

WorkspaceConnector connector = null; 
WorkspaceFactory workspaceFactory = null; 
String variableListString = null; 
Properties sasServerProperties = new Properties(); 
sasServerProperties.put("host", host); 
sasServerProperties.put("port", port); 
sasServerProperties.put("userName", userName); 
sasServerProperties.put("password", password); 
Properties[] sasServerPropertiesList = { sasServerProperties }; 
workspaceFactory = new WorkspaceFactory(sasServerPropertiesList, null, logWriter); 
connector = workspaceFactory.getWorkspaceConnector(0L); 
IWorkspace sasWorkspace = connector.getWorkspace(); 
ILanguageService sasLanguage = sasWorkspace.LanguageService(); 
//send variable list string 
//continued 

ho bisogno di inviare il "variableListString" al server SAS attraverso il ponte IOM. L'API SAS di Java non fornisce metodi espliciti per farlo. Usare CORBA e JDBC è il modo migliore per farlo ?? Dammi un suggerimento su come farlo. C'è qualche metodo alternativo per farlo ??

risposta

1

Questo è stato chiesto un po 'indietro ma utile nel caso in cui qualcuno sta ancora cercando di fare lo stesso.
Un modo per fare ciò è creare una stringa di codice sas e inviarla al server. Usiamo questo metodo per impostare le variabili sull'host per la sessione connessa. È inoltre possibile utilizzare questa tecnica per includere il codice SAS utilizzando il codice come %include "percorso al mio codice/i miei sas code.sas" ;:

... continua dal codice nella domanda ...

langService = iWorkspace.LanguageService(); 
    StringBuilder sb = new StringBuilder(); 
    sb.append("%let mysasvar=" + javalocalvar); 
    ... more variables 
    try { 
     langService.Submit(sb.toString()); 
    } catch (GenericError e) { 
     e.printStackTrace(); 
    } 
+0

In questo metodo utilizziamo il codice sas nel codice java. Stavo cercando di utilizzare l'API per ottenere questo risultato piuttosto che scrivere un codice SAS. –

+0

Ho appena esaminato la più recente API Java IntTech di SAS e, a parte lavorare con opzioni e formati, non vedo nulla che funzioni direttamente con le variabili macro (suppongo che le macro vars, non le vd pdv fossero ciò che stavi cercando). Non è nativo per l'API SAS ma potresti creare una classe per avvolgere l'approccio altrimenti basato su sas. Dato come comunica sotto le coperte, questo è ciò che effettivamente passerebbe sul filo anche se SAS fornisse il metodo. Altrimenti, mi dispiace non aver potuto aiutare più direttamente, ma forse altri potrebbero trovare questo utile come un modo rapido per risolvere un problema comune. –

+0

Ho contattato il supporto SAS. Hanno detto che non possono aiutare poiché la loro API non ha nulla in quanto tale. In questo momento lo sto facendo attraverso il codice SAS in JAVA. –

Problemi correlati