mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 01:26:25 +00:00
160 lines
2.8 KiB
Java
160 lines
2.8 KiB
Java
|
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();
|
||
|
}
|
||
|
}
|