1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage SQLite;
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Vector;
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Class representing an SQLite result set as
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * returned by the
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <A HREF="Database.html#get_table(java.lang.String)">Database.get_table</A>
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * convenience method.
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <BR><BR>
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Example:<BR>
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <PRE>
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   ...
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   SQLite.Database db = new SQLite.Database();
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   db.open("db", 0);
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   System.out.print(db.get_table("select * from TEST"));
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   ...
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </PRE>
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Example output:<BR>
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <PRE>
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   id|firstname|lastname|
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   0|John|Doe|
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   1|Speedy|Gonzales|
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *   ...
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </PRE>
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class TableResult implements Callback {
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Number of columns in the result set.
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int ncolumns;
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Number of rows in the result set.
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int nrows;
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Column names of the result set.
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public String column[];
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Types of columns of the result set or null.
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public String types[];
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Rows of the result set. Each row is stored as a String array.
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public Vector rows;
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Create an empty result set.
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public TableResult() {
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    clear();
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Clear result set.
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void clear() {
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    column = new String[0];
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    types = null;
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    rows = new Vector();
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    ncolumns = nrows = 0;
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Callback method used while the query is executed.
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void columns(String coldata[]) {
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    column = coldata;
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    ncolumns = column.length;
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Callback method used while the query is executed.
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void types(String types[]) {
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    this.types = types;
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Callback method used while the query is executed.
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public boolean newrow(String rowdata[]) {
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    if (rowdata != null) {
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        rows.addElement(rowdata);
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        nrows++;
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return false;
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Make String representation of result set.
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public String toString() {
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    StringBuffer sb = new StringBuffer();
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    int i;
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    for (i = 0; i < ncolumns; i++) {
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append(column[i] == null ? "NULL" : column[i]);
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append('|');
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    sb.append('\n');
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    for (i = 0; i < nrows; i++) {
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int k;
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String row[] = (String[]) rows.elementAt(i);
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (k = 0; k < ncolumns; k++) {
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append(row[k] == null ? "NULL" : row[k]);
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append('|');
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        sb.append('\n');
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    return sb.toString();
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
134