Diff for /FM2SQL/src/DBBean.java between versions 1.1 and 1.5

version 1.1, 2005/01/21 11:27:03 version 1.5, 2006/09/30 10:58:58
Line 79  public class DBBean Line 79  public class DBBean
   Hashtable connectionPool = new Hashtable();    Hashtable connectionPool = new Hashtable();
   public ResultSetMetaData metaData;    public ResultSetMetaData metaData;
   // register DataBase Drivers    // register DataBase Drivers
     public static String[] jdbcDrivers = { 
         "com.fmi.jdbc.JdbcDriver",
         "org.postgresql.Driver",
         "com.mysql.jdbc.Driver",
         "sun.jdbc.odbc.JdbcOdbcDriver",
         "com.ddtek.jdbc.sequelink.SequeLinkDriver",
         "acs.jdbc.Driver"
     };
   static {    static {
     try        for (int i = 0; i < jdbcDrivers.length; i++) {
     {            String driverName = jdbcDrivers[i];
       DriverManager.registerDriver(new com.fmi.jdbc.JdbcDriver());            try {
       DriverManager.registerDriver((Driver) Class.forName("org.postgresql.Driver").newInstance());                System.out.println("trying to load jdbc driver "+driverName);
       DriverManager.registerDriver((Driver) Class.forName("com.mysql.jdbc.Driver").newInstance());                DriverManager.registerDriver((Driver) Class.forName(driverName).newInstance());
       DriverManager.registerDriver((Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance());                System.out.println(driverName+" loaded OK");
       DriverManager.registerDriver((Driver) Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver").newInstance());            } catch (Exception e) {
       DriverManager.registerDriver((Driver) Class.forName("acs.jdbc.Driver").newInstance());                e.printStackTrace();
              }
         }
       // wait a maximum of 10 seconds when attempting to establish a connection        // wait a maximum of 10 seconds when attempting to establish a connection
       DriverManager.setLoginTimeout(10);        DriverManager.setLoginTimeout(10);
     } catch (Exception e)  
     {  
       System.out.println(e);  
     }  
   }    }
   
   /**    /**
    * Constructs a database bean     * Constructs a database bean
    */     */
Line 460  public class DBBean Line 466  public class DBBean
    */     */
   public Vector[] getQueryData(String query, int maxHits) throws SQLException, ParseException,Exception    public Vector[] getQueryData(String query, int maxHits) throws SQLException, ParseException,Exception
   {    {
     long timeStart = System.currentTimeMillis();      return getQueryData(query,null,maxHits);  
     ResultSet resultSet = null;  
     if (connection == null)  
     {  
       Vector[] noData = new Vector[2];  
       //System.out.println("Exception occured");  
       noData[1] = new Vector();  
       Vector vec2 = new Vector();  
       noData[0] = new Vector();  
       vec2.add("no Connection available");  
       noData[0].add(vec2);  
       noData[1].add("Exception occured! No results available");  
       //noData[1].add("no Results were produced");  
   
       return noData;  
     }  
     resultSet = makeQuery(query, maxHits);  
     metaData = resultSet.getMetaData();  
     int columnCount = metaData.getColumnCount();  
   
     Vector tableData = new Vector();  
     while (resultSet.next())  
     {  
       //System.out.println("datatype "+(Types.LONGVARCHAR ==metaData.getColumnType(3)));  
       Vector tableRow = new Vector(), m_columnClasses = new Vector();  
       for (int i = 1; i <= columnCount; i++)  
       {  
         // repeating fields and fields from related databases may contain  
         // multliple data values; the data values are stored using  
         // a Vector which is then added to the tableRow  
         //      if (metaData instanceof ResultSetMetaDataExt)  
         if ((metaData instanceof ResultSetMetaDataExt) && (((ResultSetMetaDataExt) metaData).isRelated(i) || ((ResultSetMetaDataExt) metaData).isRepeating(i)))  
         {  
           //System.out.println("Related fields");  
           // retrieve the repeating or related field contents as a  
           // com.fmi.jdbc.Array via the ResultSet.getObject method  
           com.fmi.jdbc.Array array = (com.fmi.jdbc.Array) resultSet.getObject(i);  
           //            create a Vector for storing all of the data values  
           ArrayList columnData = new ArrayList();  
   
           try  
           {  
   
             // call the Array.getStringArray method since the data will  
             // only be displayed  
             Object[] fieldData = (Object[]) array.getArray();  
   
             if (fieldData != null)  
             {  
               // add each value to the Vector  
               for (int j = 0; j < fieldData.length; j++)  
               {  
                 if (fieldData[j] != null)  
                   columnData.add(fieldData[j]);  
               }  
   
             }  
           } catch (Exception e)  
           {  
             //System.out.println(e);  
           }  
           if (columnData.isEmpty())  
             tableRow.add(null);  
           else  
             tableRow.addElement(columnData);  
           //System.out.println(columnData);  
           //System.out.println("Related fields"+columnData.size()+" "+tableRow.size());  
   
           m_columnClasses.addElement(java.util.Vector.class);  
         } else if (metaData.getColumnType(i) == Types.LONGVARBINARY)  
         {  
           // use the ResultSet.getObject method for retrieving images  
           // from FileMaker Pro container fields; the ResultSet.getObject  
           // method returns a java.awt.Image object for FileMaker Pro  
           // container fields  
           try  
           {  
   
             tableRow.addElement(resultSet.getObject(i));  
           } catch (Exception e)  
           {  
             // TODO Auto-generated catch block  
             //e.printStackTrace();  
             tableRow.addElement(null);  
           }  
           //tableRow.addElement("Picture ignored");  
           m_columnClasses.addElement(java.awt.Image.class);  
         } else if (metaData.getColumnType(i) == Types.TIME)  
         {  
           // use the ResultSet.getObject method for retieving images  
           // from FileMaker Pro container fields; the ResultSet.getObject  
           // method returns a java.awt.Image object for FileMaker Pro  
           // container fields  
           try  
           {  
             tableRow.addElement(resultSet.getTime(i).toString());  
             m_columnClasses.addElement(java.sql.Time.class);  
           } catch (Exception e)  
           {  
   
             String value = resultSet.getString(i);  
             if (value != null)  
             {  
               //System.out.println("SQLTime new "+Time.valueOf("17:00:00").toString());  
               int index = 0;  
               for (int j = 0; j < value.length(); ++j)  
               {  
                 if (!Character.isLetter(value.charAt(j)))  
                   index = j + 1;  
                 else  
                   break;  
               }  
   
               tableRow.addElement(value.substring(0, index));  
               //m_columnClasses.addElement(java.sql.Time.class);  
             } else  
               tableRow.add(null);  
             m_columnClasses.addElement(String.class);  
           } // to catch  
   
         } else if (metaData.getColumnType(i) == Types.DATE)  
         {  
           // use the ResultSet.getObject method for retieving images  
           // from FileMaker Pro container fields; the ResultSet.getObject  
           // method returns a java.awt.Image object for FileMaker Pro  
           // container fields  
   
           try  
           {  
             tableRow.addElement(resultSet.getDate(i));  
   
           } catch (Exception e)  
           {  
             // work around for parse bug in FM JDBC Driver   
             // for dates of format dd-mm-yyyy  
             String date = resultSet.getString(i);  
             date = date.replace('-', '.');  
             java.text.DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMAN);  
             java.util.Date d = dateFormat.parse(date);  
             // Calendar cal=Calendar.getInstance(Locale.GERMAN);  
             // cal.setTime(d);  
             // date=(cal.get(Calendar.YEAR))+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE);  
             tableRow.addElement(new java.sql.Date(d.getTime()));  
             System.out.println("Date " + date);  
           }  
         } else if (metaData.getColumnTypeName(i) == "NUMBER")  
         {  
           // use the ResultSet.getObject method for retieving images  
           // from FileMaker Pro container fields; the ResultSet.getObject  
           // method returns a java.awt.Image object for FileMaker Pro  
           // container fields  
           try  
           {  
             Double value =new Double(resultSet.getDouble(i));  
             
             
           // tableRow.addElement(new Double(resultSet.getDouble(i)));  
           String tVal =value.toString();  
           tVal = tVal.substring(tVal.indexOf('.')+1);  
           boolean checkMe = tVal.length()==1&&tVal.equals("0");  
         //  System.out.println("check was"+checkMe+" "+tVal);  
           if(checkMe)  
           tableRow.addElement(new Integer(value.intValue()));  
           else            
           tableRow.addElement(value);  
   
           } catch (Exception e)  
           {  
   
             StringBuffer number = new StringBuffer();  
             String value = resultSet.getString(i);  
             System.out.println(value);  
             for (int c = 0; c < value.length(); ++c)  
             {  
               if (Character.isDigit(value.charAt(c)))  
               {  
                 number.append(value.charAt(c));  
               }  
             }  
             if (number.length() > 0)  
             {  
               tableRow.addElement(null);  
               m_columnClasses.addElement(Double.class);  
             } else  
               tableRow.addElement(null);  
           }  
         } else  
         {  
           // all other field values are retrieved as strings and  
           // added to the tableRow Vector  
           // if(resultSet.getObject(i)!=null) System.out.println(resultSet.getObject(i));  
           try  
           {  
             String utf8 = null;  
             if (metaData instanceof ResultSetMetaDataExt)  
             {  
             byte[] b = resultSet.getBytes(i);  
               
             if (metaData instanceof ResultSetMetaDataExt)  
               utf8 = (b == null) ? null : new String(b);  
             else  
               utf8 = (b == null) ? null : new String(b, "UTF-8");  
             }  
              else  
               utf8=resultSet.getString(i);  
                   
                 //  utf8 = (utf8 == null) ? null : new String(utf8.getBytes("UTF-8"), "UTF-8");  
             tableRow.addElement(utf8);  
               
           } catch (Exception e)  
           {  
             System.out.println("Hey I Got an error" + e);  
             e.printStackTrace();  
           }  
           m_columnClasses.addElement(java.lang.String.class);  
         }  
       }  
   
       // add the tableRow Vector to the tableData Vector  
       tableData.addElement(tableRow);  
     }  
   
     // retrieve the column names from the result set; the column names  
     // are used for the table header  
     columnNames = new Vector();  
   
     for (int i = 1; i <= columnCount; i++)  
       columnNames.addElement(metaData.getColumnName(i));  
     Vector data[] = new Vector[2];  
     data[0] = tableData;  
     data[1] = columnNames;  
     System.out.println("Rows " + tableData.size() + " " + ((Vector) tableData.get(0)).size());  
     long timeEnd = System.currentTimeMillis();  
     System.out.println("Time needed for query and data retrieval " + (timeEnd - timeStart) + " ms");  
     return data;  
   }    }
   
   public Vector getColumnNames()    public Vector getColumnNames()
Line 1234  public class DBBean Line 1006  public class DBBean
     if (!check)      if (!check)
       return null;        return null;
     Vector tableRow = new Vector(), m_columnClasses = new Vector();      Vector tableRow = new Vector(), m_columnClasses = new Vector();
     for (int i = 1; i <= columnCount; i++)      for (int i = 1; i <= columnCount; i++) {
     {  
       // repeating fields and fields from related databases may contain        // repeating fields and fields from related databases may contain
       // multliple data values; the data values are stored using        // multliple data values; the data values are stored using
       // a Vector which is then added to the tableRow        // a Vector which is then added to the tableRow
       //      if (metaData instanceof ResultSetMetaDataExt)        //      if (metaData instanceof ResultSetMetaDataExt)
       if ((metaData instanceof ResultSetMetaDataExt) && (((ResultSetMetaDataExt) metaData).isRelated(i) || ((ResultSetMetaDataExt) metaData).isRepeating(i)))              if ((metaData instanceof ResultSetMetaDataExt)
       {                      && (((ResultSetMetaDataExt) metaData).isRelated(i) || ((ResultSetMetaDataExt) metaData)
                               .isRepeating(i))) {
         //System.out.println("Related fields");          //System.out.println("Related fields");
         // retrieve the repeating or related field contents as a          // retrieve the repeating or related field contents as a
         // com.fmi.jdbc.Array via the ResultSet.getObject method          // com.fmi.jdbc.Array via the ResultSet.getObject method
         com.fmi.jdbc.Array array = (com.fmi.jdbc.Array) resultSet.getObject(i);                  com.fmi.jdbc.Array array = (com.fmi.jdbc.Array) resultSet
                           .getObject(i);
         //            create a Vector for storing all of the data values          //            create a Vector for storing all of the data values
         ArrayList columnData = new ArrayList();          ArrayList columnData = new ArrayList();
         try                  try {
         {  
   
           // call the Array.getStringArray method since the data will            // call the Array.getStringArray method since the data will
           // only be displayed            // only be displayed
           Object[] fieldData = (Object[]) array.getArray();            Object[] fieldData = (Object[]) array.getArray();
   
           if (fieldData != null)                      if (fieldData != null) {
           {  
             // add each value to the Vector              // add each value to the Vector
             for (int j = 0; j < fieldData.length; j++)                          for (int j = 0; j < fieldData.length; j++) {
             {  
               if (fieldData[j] != null)                if (fieldData[j] != null)
                 columnData.add(fieldData[j]);                  columnData.add(fieldData[j]);
             }              }
           }            }
         } catch (Exception e)                  } catch (Exception e) {
         {  
           //System.out.println(e);            //System.out.println(e);
         }          }
   
Line 1274  public class DBBean Line 1043  public class DBBean
         else          else
           tableRow.addElement(columnData);            tableRow.addElement(columnData);
         //System.out.println(columnData);          //System.out.println(columnData);
         //System.out.println("Related fields"+columnData.size()+" "+tableRow.size());                  // System.out.println("Related fields"+columnData.size()+"
                   // "+tableRow.size());
   
         // m_columnClasses.addElement(java.util.Vector.class);          // m_columnClasses.addElement(java.util.Vector.class);
       } else if (metaData.getColumnType(i) == Types.LONGVARBINARY)              } else if (metaData.getColumnType(i) == Types.LONGVARBINARY) {
       {  
         // use the ResultSet.getObject method for retrieving images          // use the ResultSet.getObject method for retrieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
         // container fields          // container fields
   
         try                  try {
         {                      tableRow.addElement(null);
           tableRow.addElement(resultSet.getObject(i));                      // image objects removed from resultset !!!
         } catch (Exception e)                      // tableRow.addElement(resultSet.getObject(i));
         {                  } catch (Exception e) {
           // TODO Auto-generated catch block            // TODO Auto-generated catch block
           // e.printStackTrace();            // e.printStackTrace();
           tableRow.addElement(null);            tableRow.addElement(null);
         }          }
         //    m_columnClasses.addElement(java.awt.Image.class);          //    m_columnClasses.addElement(java.awt.Image.class);
       } else if (metaData.getColumnType(i) == Types.TIME)              } else if (metaData.getColumnType(i) == Types.TIME) {
       {  
         // use the ResultSet.getObject method for retieving images          // use the ResultSet.getObject method for retieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
         // container fields          // container fields
         try                  try {
         {  
           tableRow.addElement(resultSet.getTime(i).toString());            tableRow.addElement(resultSet.getTime(i).toString());
           //    m_columnClasses.addElement(java.sql.Time.class);            //    m_columnClasses.addElement(java.sql.Time.class);
         } catch (Exception e)                  } catch (Exception e) {
         {  
   
           String value = resultSet.getString(i);            String value = resultSet.getString(i);
           if (value != null)                      if (value != null) {
           {                          // System.out.println("SQLTime new
             //System.out.println("SQLTime new "+Time.valueOf("17:00:00").toString());                          // "+Time.valueOf("17:00:00").toString());
             int index = 0;              int index = 0;
             for (int j = 0; j < value.length(); ++j)                          for (int j = 0; j < value.length(); ++j) {
             {  
               if (!Character.isLetter(value.charAt(j)))                if (!Character.isLetter(value.charAt(j)))
                 index = j + 1;                  index = j + 1;
               else                else
Line 1327  public class DBBean Line 1092  public class DBBean
           //  m_columnClasses.addElement(String.class);            //  m_columnClasses.addElement(String.class);
         } // to catch          } // to catch
   
       } else if (metaData.getColumnType(i) == Types.INTEGER)              } else if (metaData.getColumnType(i) == Types.INTEGER) {
       {  
         // use the ResultSet.getObject method for retieving images          // use the ResultSet.getObject method for retieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
Line 1336  public class DBBean Line 1100  public class DBBean
   
         tableRow.addElement(new Integer(resultSet.getInt(i)));          tableRow.addElement(new Integer(resultSet.getInt(i)));
         //  m_columnClasses.addElement(java.sql.Date.class);          //  m_columnClasses.addElement(java.sql.Date.class);
       } else if (metaData.getColumnType(i) == Types.DATE)              } else if (metaData.getColumnType(i) == Types.DATE) {
       {  
         // use the ResultSet.getObject method for retieving images          // use the ResultSet.getObject method for retieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
         // container fields          // container fields
         try                  try {
         {  
           tableRow.addElement(resultSet.getDate(i));            tableRow.addElement(resultSet.getDate(i));
   
         } catch (Exception e)                  } catch (Exception e) {
         {  
           // work around for parse bug in FM JDBC Driver             // work around for parse bug in FM JDBC Driver 
           // for dates of format dd-mm-yyyy            // for dates of format dd-mm-yyyy
           String date = resultSet.getString(i);            String date = resultSet.getString(i);
           date = date.replace('-', '.');            date = date.replace('-', '.');
           java.text.DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMAN);                      java.text.DateFormat dateFormat = DateFormat
                               .getDateInstance(DateFormat.SHORT, Locale.GERMAN);
           java.util.Date d = dateFormat.parse(date);            java.util.Date d = dateFormat.parse(date);
           // Calendar cal=Calendar.getInstance(Locale.GERMAN);            // Calendar cal=Calendar.getInstance(Locale.GERMAN);
           // cal.setTime(d);            // cal.setTime(d);
Line 1361  public class DBBean Line 1123  public class DBBean
           System.out.println("Date " + date);            System.out.println("Date " + date);
         }          }
         //  m_columnClasses.addElement(java.sql.Date.class);          //  m_columnClasses.addElement(java.sql.Date.class);
       } else if (metaData.getColumnTypeName(i) == "NUMBER")              } else if (metaData.getColumnTypeName(i) == "NUMBER") {
       {  
         // use the ResultSet.getObject method for retieving images          // use the ResultSet.getObject method for retieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
         // container fields          // container fields
         try                  try {
         {  
             Double value =new Double(resultSet.getDouble(i));              Double value =new Double(resultSet.getDouble(i));
                       
             
           // tableRow.addElement(new Double(resultSet.getDouble(i)));            // tableRow.addElement(new Double(resultSet.getDouble(i)));
           String tVal =value.toString();            String tVal =value.toString();
           tVal = tVal.substring(tVal.indexOf('.')+1);            tVal = tVal.substring(tVal.indexOf('.')+1);
Line 1384  public class DBBean Line 1143  public class DBBean
         
           // m_columnClasses.addElement(Integer.class);            // m_columnClasses.addElement(Integer.class);
   
         } catch (Exception e)                  } catch (Exception e) {
         {  
   
           StringBuffer number = new StringBuffer();            StringBuffer number = new StringBuffer();
           String value = resultSet.getString(i);            String value = resultSet.getString(i);
           System.out.println(value);            System.out.println(value);
           for (int c = 0; c < value.length(); ++c)                      for (int c = 0; c < value.length(); ++c) {
           {                          if (Character.isDigit(value.charAt(c))) {
             if (Character.isDigit(value.charAt(c)))  
             {  
               number.append(value.charAt(c));                number.append(value.charAt(c));
             }              }
           }            }
           if (number.length() > 0)                      if (number.length() > 0) {
           {  
             tableRow.addElement(null);              tableRow.addElement(null);
             //   m_columnClasses.addElement(Integer.class);              //   m_columnClasses.addElement(Integer.class);
           } else            } else
             tableRow.addElement(null);              tableRow.addElement(null);
         }          }
       } else              } else {
       {  
         // all other field values are retrieved as strings and          // all other field values are retrieved as strings and
         // added to the tableRow Vector          // added to the tableRow Vector
         //   System.out.println("row "+resultSet.getString(i));          //   System.out.println("row "+resultSet.getString(i));
         try                  try {
         {  
           byte[] b = null;            byte[] b = null;
           if (metaData instanceof ResultSetMetaDataExt)            if (metaData instanceof ResultSetMetaDataExt)
             b = resultSet.getBytes(i);              b = resultSet.getBytes(i);
           /*   if (b != null)                      /*
              {                       * if (b != null) { java.io.ByteArrayInputStream stream =
                java.io.ByteArrayInputStream stream = (java.io.ByteArrayInputStream) resultSet.getBinaryStream(i);                       * (java.io.ByteArrayInputStream)
                //    System.out.println(" stream "+resultSet.getBinaryStream(i));                       * resultSet.getBinaryStream(i); // System.out.println("
                byte[] c = new byte[stream.available()];                       * stream "+resultSet.getBinaryStream(i)); byte[] c = new
                int length = stream.read(c, 0, c.length);                       * byte[stream.available()]; int length = stream.read(c, 0,
                int count = 0;                       * c.length); int count = 0; b = new byte[c.length]; for
                b = new byte[c.length];                       * (int n = 0; n < length; ++n) {
                for (int n = 0; n < length; ++n)                       * 
                {                       * if (c[n] != 0) { // System.out.println(c[n]+"
                                  * "+(int)'?'+" "+(char)c[n]+" "+count+" "+b.length);
                  if (c[n] != 0)                       * b[count++] = c[n]; } } byte[] bCopy = new byte[count];
                  {                       * System.arraycopy(b, 0, bCopy, 0, count); b = bCopy; }
                    //     System.out.println(c[n]+" "+(int)'?'+" "+(char)c[n]+" "+count+" "+b.length);                       */
                    b[count++] = c[n];  
                  }  
                }  
                byte[] bCopy = new byte[count];  
                System.arraycopy(b, 0, bCopy, 0, count);  
                b = bCopy;  
              }*/  
           String utf8 = null;            String utf8 = null;
           utf8 = (b == null) ? null : new String(b);            utf8 = (b == null) ? null : new String(b);
           if (metaData instanceof ResultSetMetaDataExt)                      if (metaData instanceof ResultSetMetaDataExt) {
           {  
             String rowElement = "";              String rowElement = "";
             if (b != null)                          if (b != null) {
             {  
               rowElement = resultSet.getString(i);                rowElement = resultSet.getString(i);
               if (useNormanToUnicodeMapper)                if (useNormanToUnicodeMapper)
                 rowElement = Convert.normanToUnicode(rowElement);                                  rowElement = Convert
                                           .normanToUnicode(rowElement);
               tableRow.addElement(rowElement);                tableRow.addElement(rowElement);
   
             } else              } else
               tableRow.addElement(null);                tableRow.addElement(null);
           } else                      } else {
           {                          if (url.toLowerCase().indexOf("odbc") >= 0) {
             if (url.toLowerCase().indexOf("odbc") >= 0)  
             {  
               byte[] val = resultSet.getBytes(i);                byte[] val = resultSet.getBytes(i);
               for (int j = 0; j < val.length; ++j)                for (int j = 0; j < val.length; ++j)
                 System.out.println(Integer.toHexString(val[j]));                  System.out.println(Integer.toHexString(val[j]));
               tableRow.addElement((val == null) ? null : new String(val));                              tableRow.addElement((val == null) ? null
                                       : new String(val));
   
             } else                          } else {
               //  byte[] val = resultSet.getBytes(i);  
               tableRow.add(resultSet.getString(i));                tableRow.add(resultSet.getString(i));
             //tableRow.addElement((val==null) ? null:new String(val,"UTF-8"));                              //byte[] val = resultSet.getBytes(i);
                               //System.out.println("string data:"+resultSet.getString(i));
                               /*if (val != null) {
                                   tableRow.add(new String(val,"UTF-8"));
                               } else {
                                   tableRow.add(null);
                               }*/
           }            }
         } catch (Exception e)                      }
         {                  } catch (Exception e) {
           System.out.println("Hey I got an error" + e);            System.out.println("Hey I got an error" + e);
           e.printStackTrace();            e.printStackTrace();
         }          }

Removed from v.1.1  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>