Home|Products|Doc/Java|Community|Company

FAQ|Demo|Download

    vnovalogo.jpg


This documents describes the VectorStar Java interface.


 

java_starting.jpg

Java Interface

What is it?

/*

Vectornova SAdeCV

Copyright (c) 2008-2009

All rights reserved.

*/

package com.vnova.demo;

import com.vnova.vsql.VectorSQL;

import java.lang.reflect.Array;

 

public class VectorSqlExamplet

{

        //=================================================================

        //=== Main

        //=================================================================

        public static void main(String[] args)

        {

                try {

                        com.vnova.vsql.VectorSQL vs = new com.vnova.vsql.VectorSQL();

                        java.util.Vector         retval;

                        String                   command;

                        String                   host = "localhost";

                        short                    httpPort   = 9089;

                        short                    telnetPort = 10001;

 

                        System.out.print("This examplet demonstrates VectorSQL function calls");

 

                        // ======================================================                                                               // 1.- GO() / TEXT mode

                        vs.OPTION("FORMAT", "TEXT/TXT")

                          .USE("Police")

                          .OPEN("Ticket,Vehicle,Person")

                          .FROM("Vehicle").WHERE("Make = 'NISSAN'")

                          .OR("Make = 'TOYOTA'").OR("Make = 'FORD'")

                          .AND("Year >= 2000")  .AND("Year <= 2005")

                          .FROM("Ticket").WHERE("Date >= 20050101").AND("Date <= 20051231")

                          .JOIN("Ticket","Vehicle,Person","Vehicle,Driver")

                          .GROUP_BY("Vehicle.Make,State")

                          .SELECT("GROUP, MIN Vehicle.Year, MAX Vehicle.Year, SUM Amount");

                        command = vs.COMMAND();

                        retval  = vs.GO();

                        print("1.- GO() / TEXT mode", command, retval);

 

 

                        // 2.- GO() / BINARY mode

                        vs.RESET(); // clear vs command log

                        vs.OPTION("FORMAT", "BINARY/COLUMNS")

                          .USE("Police")

                          .OPEN("Ticket,Vehicle,Person")

                          .FROM("Vehicle").WHERE("Make = 'NISSAN'")

                          .OR("Make = 'TOYOTA'").OR("Make = 'FORD'")

                          .AND("Year >= 2000")  .AND("Year <= 2005")

                          .FROM("Ticket").WHERE("Date >= 20050101").AND("Date <= 20051231")

                          .JOIN("Ticket","Vehicle,Person","Vehicle,Driver")

                          .GROUP_BY("Vehicle.Make,State")

                          .SELECT("GROUP, MIN Vehicle.Year, MAX Vehicle.Year, SUM Amount");

                        command = vs.COMMAND();

                        retval  = vs.GO();

                        print("2.- GO() / BINARY mode", command, null);

                        Object[] metadata = (Object[]) retval.elementAt(0);

                        System.out.println("\nresult metadata:");

                        Output.Show(metadata);

                        Object[] colsdata = (Object[]) retval.elementAt(1);

                        System.out.println("\nresult data:");

                        Output.Show(colsdata);

                        double sumAmount[] = (double[])java.lang.reflect.Array.get(colsdata, 4);

                        double sumOfSumAmount = 0;

                        for (int i=0; i<sumAmount.length; i++)

                           sumOfSumAmount += sumAmount[i];

                        System.out.println("\ngrand total (in Java):\n" + sumOfSumAmount + "\n");

 

 

                        // ======================================================                      

                        // 3.- Call a procedure defined in a library

                        vs.RESET()

                          .USE("VaR")

                          .OPEN("Scenario")

                          .FROM("Scenario")

                          .LIBRARY("VSQL/hlp/tut/VaR/lib/lib.vsq")

                          .CALL("varPVs", "'N1 id1 id2',NL_CHR_,'N2 id20 id30 id40 id100'");

                        // The resulting format is defined in the library

                        command = vs.COMMAND();

                        retval  = vs.GO();

                        print("3.- Call a procedure defined in a library", command, retval);

 

 

                        // ======================================================                      

                        // 4.- DO() / VectorSQL-produced command

                        vs.RESET()

                          .OPTION("FORMAT", "TEXT/TXT")

                          .USE("Police")

                          .OPEN("Ticket,Vehicle,Person")

                          .FROM("Vehicle").WHERE("Make = 'NISSAN'")

                          .OR("Make = 'TOYOTA'").OR("Make = 'FORD'")

                          .AND("Year >= 2000")  .AND("Year <= 2005")

                          .FROM("Ticket").WHERE("Date >= 20050101").AND("Date <= 20051231")

                          .JOIN("Ticket","Vehicle,Person","Vehicle,Driver")

                          .GROUP_BY("Vehicle.Make,State")

                          .SELECT("GROUP, MIN Vehicle.Year, MAX Vehicle.Year, SUM Amount");

                        command = vs.COMMAND();

                        retval  = vs.DO(command);

                        print("4.- DO() / VectorSQL-produced command", command, retval);

 

 

                        // 5.- DO() / arbitrary command

                        command = "CURRENT_NODE''";

                        retval  = vs.DO(command);

                        print("5.- DO() / arbitrary command", command, retval);

 

 

                        // ======================================================                      

                        // 6.- Remote execution / NJHTTP

                        // NOTE: NJ HTTP server is assumed to be running on the remote host

                        if (args.length < 1) {

                                System.out.println("WARNING: no host was specified, using '" + host + "'");

                                System.out.println("(see README.txt to sepecify the host at the command line)");

                        }

                        else {

                                host = args[0];

                        }

                        vs.RESET()

                          .OPTION("CMD/HOST", host).OPTION("CMD/PORT", httpPort).OPTION("CMD/PROTOCOL", "NJHTTP");

                        command = vs.COMMAND() + ";;CURRENT_NODE''";

                        retval  = vs.DO(command);

                        print("6.- Remote execution / NJHTTP", command, retval);

 

 

                        // 7.- Remote execution / TELNET

                        // NOTE: A telnet server daemon is assumed to be running on the remote host, where a

                        // remote VSL process will be launched on demand.

                        if (args.length != 3) {

                                System.out.println("7.- Remote execution / TELNET");

                                System.out.println("WARNING: no usr/psswd: skipping TELNET section");

                                System.out.println("(see README.txt for info on usr/pssd via cmd line)");

                        }

                        else {

                                String user   = args[1];

                                String passwd = args[2];

                                vs.RESET();

                                vs.OPTION("CMD/HOST", host).OPTION("CMD/PORT", telnetPort)

                                  .OPTION("CMD/PROTOCOL", "TELNET")

                                  .OPTION("CMD/USER", user).OPTION("CMD/PASSWORD", passwd);

                                command = vs.COMMAND() + ";;CURRENT_NODE''";

                                retval  = vs.DO(command);

                                print("7.- Remote execution / TELNET", command, retval);

                        }

                }

                catch (com.vnova.VectorNovaException e1)

                {

                        e1.printStackTrace();

                }

                catch(Exception e2)

                {

                        e2.printStackTrace();

                }

        }

        public static void print(String title, String command, java.util.Vector retval) {

                System.out.print("\n");

                System.out.println(title);

                System.out.println("command:");

                System.out.println(command);

                if (retval != null) {

                        System.out.println("\nresult:");

                        Output.Show(retval.toArray());

                }

                System.out.print("\n");

        }

}

overlap.png