Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / Databases / February 2005

Tip: Looking for answers? Try searching our database.

loading HSQL in-memory from different JVM processes

Thread view: 
Albretch - 08 Feb 2005 12:36 GMT
as specified in the JDBC MEtadata getTables and getColumns

/doc/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.html

..
3. TABLE_NAME String => table name
..

should give you the TABLE_NAME for a given database.

However the code snipped does not:

// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import java.io.*;
import java.util.*;
import java.sql.*;

// __
public class testCols02{
public static void main(String[] aArgs){
 String aDrvr = "org.hsqldb.jdbcDriver";
 String aDBURL = "jdbc:hsqldb:mem:";
 String aTblsDB = ".";
 String aUser = "sa";
 String aPW = "";
// __
 try{ Class.forName(aDrvr).newInstance(); }
  catch(ClassNotFoundException KNFX){ KNFX.printStackTrace(); }
   catch(InstantiationException InstX){ InstX.printStackTrace(); }
    catch(IllegalAccessException IlgAxX){ IlgAxX.printStackTrace(); }
// __
 Connection _DBCx = null;
 Statement St = null;
 DatabaseMetaData DBMD = null;
 String aSQL = null;
 String[] aTyps = new String[]{"TABLE"};
 String aRSTblNm = null;
 ResultSet RSTbls = null;
 ResultSet RSCols = null;
 int iTbls;
 int iCols;
// __ Creating the in-memory DB
 try{
  _DBCx = DriverManager.getConnection(aDBURL + aTblsDB, aUser, aPW);
  St = _DBCx.createStatement();

System.out.println("// __ _DBCx: |" + _DBCx + "|");
System.out.println("// __ St: |" + St + "|");

  aSQL = "CREATE TABLE tbl00AA467E (fld00 CHAR(16), fld02 VARCHAR(255), fld04 INT NOT NULL, fld06 REAL);";
System.out.println(" aSQL=" + aSQL);
  St.executeUpdate(aSQL);
// __
  St.close(); St = null;
// __
  DBMD = _DBCx.getMetaData();
  RSTbls = DBMD.getTables(aTblsDB, null, "%", aTyps);
// __
System.out.println("// __ _DBCx: |" + _DBCx + "|");
System.out.println("// __ DBMD: |" + DBMD + "|");
System.out.println("// __ RSTbls: |" + RSTbls + "|");
// __
  iTbls = 0;
  while(RSTbls.next()){
   aRSTblNm = RSTbls.getString(3);
System.out.println(iTbls + " |" + aRSTblNm + "|");
   ++iTbls;
  }
  RSTbls.close();  RSTbls = null;
System.out.println(" iTbls: |" + iTbls + "|");
// __
 }catch(SQLException SQLX){ SQLX.printStackTrace(); }
// __
 finally{
  if(St != null){  try{ St.close(); }catch(SQLException SQLX){ ; }  St = null; }
  if(_DBCx != null){  try{ _DBCx.close(); }catch(SQLException SQLX){ ; }  _DBCx = null; }
 }// finally
}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - -

I have tested this code with different DBMS and it works fine except for in-memory hsqldb

Any examples of how to get the tables and their column names of an in-memory hsqldb?
fredt - 20 Feb 2005 14:43 GMT
You need to call getTables with a null first argument.

RSTbls = DBMD.getTables(null, null, "%", aTyps);

Fred

> as specified in the JDBC MEtadata getTables and getColumns
>
[quoted text clipped - 85 lines]
> Any examples of how to get the tables and their column names of an
> in-memory hsqldb?


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.