libdb/lang/sql/jdbc/SQLite/TableResult.java

160 lines
2.8 KiB
Java
Raw Normal View History

2011-09-13 17:44:24 +00:00
package SQLite;
import java.util.Vector;
/**
* Class representing an SQLite result set as
* returned by the
* <A HREF="Database.html#get_table(java.lang.String)">Database.get_table</A>
* convenience method.
* <BR><BR>
* Example:<BR>
*
* <PRE>
* ...
* SQLite.Database db = new SQLite.Database();
* db.open("db", 0);
* System.out.print(db.get_table("select * from TEST"));
* ...
* </PRE>
* Example output:<BR>
*
* <PRE>
* id|firstname|lastname|
* 0|John|Doe|
* 1|Speedy|Gonzales|
* ...
* </PRE>
*/
public class TableResult implements Callback {
/**
* Number of columns in the result set.
*/
public int ncolumns;
/**
* Number of rows in the result set.
*/
public int nrows;
/**
* Column names of the result set.
*/
public String column[];
/**
* Types of columns of the result set or null.
*/
public String types[];
/**
* Rows of the result set. Each row is stored as a String array.
*/
public Vector rows;
/**
* Maximum number of rows to hold in the table.
*/
public int maxrows = 0;
/**
* Flag to indicate Maximum number of rows condition.
*/
public boolean atmaxrows;
/**
* Create an empty result set.
*/
public TableResult() {
clear();
}
/**
* Create an empty result set with maximum number of rows.
*/
public TableResult(int maxrows) {
this.maxrows = maxrows;
clear();
}
/**
* Clear result set.
*/
public void clear() {
column = new String[0];
types = null;
rows = new Vector();
ncolumns = nrows = 0;
atmaxrows = false;
}
/**
* Callback method used while the query is executed.
*/
public void columns(String coldata[]) {
column = coldata;
ncolumns = column.length;
}
/**
* Callback method used while the query is executed.
*/
public void types(String types[]) {
this.types = types;
}
/**
* Callback method used while the query is executed.
*/
public boolean newrow(String rowdata[]) {
if (rowdata != null) {
if (maxrows > 0 && nrows >= maxrows) {
atmaxrows = true;
return true;
}
rows.addElement(rowdata);
nrows++;
}
return false;
}
/**
* Make String representation of result set.
*/
public String toString() {
StringBuffer sb = new StringBuffer();
int i;
for (i = 0; i < ncolumns; i++) {
sb.append(column[i] == null ? "NULL" : column[i]);
sb.append('|');
}
sb.append('\n');
for (i = 0; i < nrows; i++) {
int k;
String row[] = (String[]) rows.elementAt(i);
for (k = 0; k < ncolumns; k++) {
sb.append(row[k] == null ? "NULL" : row[k]);
sb.append('|');
}
sb.append('\n');
}
return sb.toString();
}
}