/* * This file is part of rasdaman community. * * Rasdaman community is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Rasdaman community is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with rasdaman community. If not, see . * * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / rasdaman GmbH. * * For more information please see * or contact Peter Baumann via . */ /************************************************************* * * * PURPOSE: * test rasj: simple open/read query/close cycle. * rasj test program for executing a query against some rasdaman database. * Note: database is opened readonly, so send only SELECT queries. * * @param --server s - use server s (default: localhost) * @param --port p - use server port p (default: 7001) * @param --database d - use database d (default: RASBASE) * @param --user u - log in as user u (default: rasguest) * @param --passwd p - log in with password p (default: rasguest) * @param --query q - send SELECT query string q to server (default: "select r from RAS_COLLECTIONNAMES as r"") * @param --count c - execute query c times (default: 1) * * * COMMENTS: * - no parameter line error handling ************************************************************/ import rasj.*; import rasj.odmg.*; import org.odmg.*; import java.util.*; import java.io.*; public class TestQuery { public static void main( String[] args ) { String server = "localhost"; String port = "7001"; String base = "RASBASE"; String user = "rasguest"; String passwd = "rasguest"; String query = "select r from RAS_COLLECTIONNAMES as r"; int count = 1; if (args.length == 0) { System.out.println( "usage: TestQuery [options]" ); System.out.println( "options:" ); System.out.println( " --server s - use server s (default: localhost)" ); System.out.println( " --port p - use server port p (default: 7001)" ); System.out.println( " --database d - use database d (default: RASBASE)" ); System.out.println( " --user u - log in as user u (default: rasguest)" ); System.out.println( " --passwd p - log in with password p (default: rasguest)" ); System.out.println( " --query q - send SELECT query string q to server (default: select r from RAS_COLLECTIONNAMES as r)" ); System.out.println( " --count c - execute query c times (default: 1)" ); return; } for (int i=args.length-1; i>=0; i--) { if (args[i].equals("--server")) server = args[i+1]; if (args[i].equals("--port")) port = args[i+1]; if (args[i].equals("--database")) base = args[i+1]; if (args[i].equals("--user")) user = args[i+1]; if (args[i].equals("--passwd")) passwd = args[i+1]; if (args[i].equals("--query")) query = args[i+1]; if (args[i].equals("--count")) count = Integer.parseInt(args[i+1]); } System.out.println( "Query test started with server=" + server + ", port=" + port + ", database=" + base + ", user=" + user + ", count=" + count + ", query=" + query ); try { RasImplementation myApp = new RasImplementation("http://"+server+":"+port); myApp.setUserIdentification(user, passwd); System.out.println( "opening database..." ); Database myDb = myApp.newDatabase(); myDb.open( base, Database.OPEN_READ_WRITE ); System.out.println( "starting transaction..." ); Transaction myTa = myApp.newTransaction(); myTa.begin(); for (int i = 1; i <= count; i++) { System.out.print( "sending query #" + i + "..." ); OQLQuery myQu = myApp.newOQLQuery(); myQu.create(query); DBag result = (DBag) myQu.execute(); System.out.println( "result is: " + result ); } System.out.println( "closing transaction..." ); myTa.commit(); // System.out.println( "sending query out of TA, must produce an error..." ); // OQLQuery myQu2 = myApp.newOQLQuery(); // myQu2.create(query); // DBag result2 = (DBag) myQu2.execute(); System.out.println( "closing database..." ); myDb.close(); } catch(Exception e) { System.err.println( e.getMessage() ); } System.out.println( "Query test done." ); } // main() } // TestQuery