1 package com.quantum.sql;
3 import java.sql.ResultSet;
4 import java.sql.ResultSetMetaData;
5 import java.sql.SQLException;
6 import java.util.ArrayList;
8 import java.util.Vector;
10 import com.quantum.model.Bookmark;
11 import com.quantum.model.Entity;
17 public class SQLMetaDataResults extends SQLResultSetResults {
22 private SQLMetaDataResults(String query, Bookmark bookmark, Entity entity) {
23 super(query, bookmark, entity);
26 static SQLResultSetResults create(Bookmark bookmark, ResultSet set, String query, Entity entity) throws SQLException {
28 SQLMetaDataResults results = new SQLMetaDataResults(query, bookmark, entity);
29 results.parseResultSet(set);
39 * @throws SQLException
41 protected void parseResultSet(ResultSet set) throws SQLException {
43 List columns = new ArrayList();
44 columns.add(new Column("ColumnName", "", 0)); //$NON-NLS-1$
45 columns.add(new Column("Type", "", 0)); //$NON-NLS-1$
46 columns.add(new Column("Size", "", 0)); //$NON-NLS-1$
47 columns.add(new Column("Nullable", "", 0)); //$NON-NLS-1$
48 columns.add(new Column("AutoIncrement", "", 0)); //$NON-NLS-1$
49 setColumns((Column[]) columns.toArray(new Column[columns.size()]));
51 ResultSetMetaData metaData = set.getMetaData();
53 List rowList = new ArrayList();
54 for (int i = 1; i <= metaData.getColumnCount(); i++) {
55 Vector row = new Vector();
56 row.addElement(metaData.getColumnName(i));
57 row.addElement(metaData.getColumnTypeName(i));
58 int textSize = metaData.getColumnDisplaySize(i);
59 int precision = metaData.getPrecision(i);
60 int scale = metaData.getScale(i);
61 if (scale == 0 && precision == 0) {
62 row.addElement(Integer.toString(precision));
64 row.addElement(textSize + ", " + precision + ", " + scale); //$NON-NLS-1$ //$NON-NLS-2$
66 int nullable = metaData.isNullable(i);
67 if (nullable == ResultSetMetaData.columnNoNulls) {
68 row.addElement("Not Null"); //$NON-NLS-1$
69 } else if (nullable == ResultSetMetaData.columnNullable) {
70 row.addElement("Nullable"); //$NON-NLS-1$
72 nullable == ResultSetMetaData.columnNullableUnknown) {
73 row.addElement("Nullable"); //$NON-NLS-1$
75 row.addElement("<Error>"); //$NON-NLS-1$
78 (metaData.isAutoIncrement(i)
82 rowList.add(new Row(row));
84 setRows((Row[]) rowList.toArray(new Row[rowList.size()]));
88 public boolean isMetaData() {