SAS9-IT技术应用-通过JAVA访问SAS实例

原创 2004年09月27日 13:46:00

在配置好SAS的IT后,其容许JAVA通过Bridge技术访问IT,下面写一个测试例子,通过JAVA执行DATA STEP,并获得返回的日志信息

//Untitled1.java


import com.sas.iom.SAS.IWorkspace;
import com.sas.iom.SAS.IWorkspaceHelper;
import com.sas.iom.SAS.ILanguageService;
import com.sas.iom.SAS.ILanguageService;
import com.sas.iom.SAS.ILanguageServicePackage.CarriageControlSeqHolder;
import com.sas.iom.SAS.ILanguageServicePackage.LineTypeSeqHolder;
import com.sas.iom.SAS.IWorkspace;
import com.sas.iom.SASIOMDefs.StringSeqHolder;
import com.sas.services.connection.BridgeServer;
import com.sas.services.connection.ConnectionFactoryAdminInterface;
import com.sas.services.connection.ConnectionFactoryConfiguration;
import com.sas.services.connection.ConnectionFactoryInterface;
import com.sas.services.connection.ConnectionFactoryManager;
import com.sas.services.connection.ConnectionInterface;
import com.sas.services.connection.ManualConnectionFactoryConfiguration;
import com.sas.services.connection.Server;

import java.util.*;
import java.io.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;


public class Untitled1 {
  public Untitled1() {
  }

  static public void main(String[] argv){

// identify the IOM server
    String classID = Server.CLSID_SAS;
    String host = "wuyz";
    int port = 8591;
    Server server = new BridgeServer(classID, host, port);
    try{
// make a connection factory configuration with the server
      ConnectionFactoryConfiguration cxfConfig =
          new ManualConnectionFactoryConfiguration(server);

// get a connection factory manager
      ConnectionFactoryManager cxfManager = new ConnectionFactoryManager();

// get a connection factory that matches the configuration
      ConnectionFactoryInterface cxf = cxfManager.getFactory(cxfConfig);

// get the administrator interface
      ConnectionFactoryAdminInterface admin = cxf.getAdminInterface();

// get a connection
      String userName = "sasadm";
      String password = "sas";
System.out.println("----------------------- connnect.... ");
      ConnectionInterface cx = cxf.getConnection(userName, password);
      org.omg.CORBA.Object obj = cx.getObject();
      IWorkspace iWorkspace = IWorkspaceHelper.narrow(obj);

      ILanguageService sasLanguage = iWorkspace.LanguageService();
      /*excute a examle data step.*/
      sasLanguage.Submit("data a;x=1;run;proc print;run;");

      /*get SAS log.*/
      CarriageControlSeqHolder logCarriageControlHldr =
         new CarriageControlSeqHolder();
      LineTypeSeqHolder logLineTypeHldr = new LineTypeSeqHolder();
      StringSeqHolder logHldr = new StringSeqHolder();
      sasLanguage.FlushLogLines(Integer.MAX_VALUE,logCarriageControlHldr,
                                logLineTypeHldr,logHldr);
      String[] logLines = logHldr.value;
      CarriageControlSeqHolder listCarriageControlHldr =
         new CarriageControlSeqHolder();
      LineTypeSeqHolder listLineTypeHldr = new LineTypeSeqHolder();
      StringSeqHolder listHldr = new StringSeqHolder();
      sasLanguage.FlushListLines(Integer.MAX_VALUE,listCarriageControlHldr,
                                 listLineTypeHldr,listHldr);
      String[] listLines = listHldr.value;

      System.out.println("-----------------------------SAS---------------------");
      for(int i=0 ; i < listLines.length;i++){
        System.out.println(listLines[i]);
      }
      System.out.println("-----------------------------SAS  END----------------");

      cx.close();
System.out.println("----------------------- connnect is close.... ")  ;

// tell the factory that it can destroy unused connections
      admin.shutdown();
System.out.println("----------------------- is shutdown.... ")        ;
    }catch(Exception e){
      e.printStackTrace();
    }
  }

通过SAS connect drvier for java 来访问SAS

  通过SAS connect drvier for java 来访问SAS 通过sas share*.net可以在java中使用jdbc来访问SAS数据集,但是通过这种方式只能访问SAS数据集,而无...
  • AnyJack
  • AnyJack
  • 2007年07月27日 10:09
  • 6705

通过JAVA、VB访问SAS IOM服务器

通过IOM(“Integrated Object Model” )服务器,没有必要使SAS安装在本地系统,通过Management Console和Enterprise Guide工具可以完美的连接到...
  • AnyJack
  • AnyJack
  • 2006年05月22日 16:46
  • 4631

JAVA通过JDBC访问SAS数据(通过IOM接口)

通过IOM访问SAS数据是有别于通过sas share访问SAS数据,在这种方式下,用法无需在SAS后台安装SAS SHARE服务器,只需要用户在后台安装好基本的SAS IT SERVER(即包含ME...
  • AnyJack
  • AnyJack
  • 2011年01月24日 20:46
  • 5946

Java学习之道:SAS学习笔记(一)

概念的理解: 1.逻辑库  由一组SAS文件组成,即类似一个储物箱,包括临时库和永久库。 (1)临时库:启动时存在,关了就删除了 (2)永久库:关了SAS也还是存在 2.数据集...
  • u011511429
  • u011511429
  • 2013年08月03日 23:50
  • 1069

java应用中如何捕抓SAS存储过程输出的流信息

java应用中如何捕抓SAS存储过程输出的流信息 这个指南演示如何在存储过程中使用ods格式化输出流并被用某种语言编写的应用所接收,如java语言 例子报告首先我们引用一个简单例子,其用ods格式化输...
  • AnyJack
  • AnyJack
  • 2007年06月28日 15:17
  • 2922

SAS宏保存以便快速调用的三种解决方案(转载)

1.方式一:%include %include "full_path\sortds.txt"; inserts any code in the file called sortds.txt in...
  • xiaotianlan
  • xiaotianlan
  • 2017年05月15日 15:47
  • 479

龙芯3A使用qemu运行MegaCli配置raid卡

raid卡功能配置(完善中) 问题如下: 在龙芯3a双路板子上无法支持raid卡的配置,即无法在开机启动的...
  • yarsen
  • yarsen
  • 2011年12月05日 14:39
  • 2001

Sas应用之统计多个数据集重复数据量

我的简书:http://www.jianshu.com/p/1f81f76464ef
  • linuxpassion
  • linuxpassion
  • 2016年07月24日 22:43
  • 1479

【SAS系列】SAS简单实例代码——聚类

data a1; input city $ x1 x2 x3 x4@@; cards; 北京 4012.8 1365.8 611.9 813.2 天津 2188.8 2631.5...
  • piaoxuefengqi
  • piaoxuefengqi
  • 2014年04月09日 12:21
  • 1904

SAS9新体验-在DATA STEP中使用JAVA对象

简介DSCI提供建立和处理组件对象在DATA STEP程序中,JAVAOBJ就是这样的一个对象,其提供类似JNI的机制,可实例化JAVA 类,访问对象属性和方法定义JAVA对象其由DECLARE语法支...
  • AnyJack
  • AnyJack
  • 2004年09月27日 17:11
  • 1872
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SAS9-IT技术应用-通过JAVA访问SAS实例
举报原因:
原因补充:

(最多只允许输入30个字)