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(); |
} |
} |