...
Note |
---|
See also the namedFoundset property of a form. |
One of the primary jobs of a Foundset is to load records from the table to which it is bound. A Foundset object is always based on an underlying SQL query, which may change often during the lifetime of the Foundset. However the query will always take the form of selecting the Primary Key column(s) from the table and will also always include an Order By clause, which in its simplest form will sort the results based on the Primary Key column(s).
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
SELECT customerid FROM customers ORDER BY customerid ASC
|
After retrieving the results for Primary Key data, the Foundset will issue subsequent SQL queries to load the matching record data in smaller, optimized blocks. This query happens automatically in an on-demand fashion to satisfy the Foundset's scrollable interface.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
SELECT * FROM customers WHERE customerid IN (?,?,?,?,?,?,?,?) ORDER BY customerid ASC |
A foundset's underlying query can change dramatically throughout the client session. The following events will modify a foundset's underlying query
Note |
---|
See also the Database Manager's getSQL and getSQLParameters methods |
The loadRecords method is used to directly modify the underlying query that loads PK data. There are several uses.
This is the simplest approach, which loads a single recordy by its primary key value.
Code Block |
---|
foundset.loadRecords(123);
|
This approach simply dictates that a foundset will load records based on specified primary key data.
Code Block |
---|
var ids = [1,2,3,6,9]; // an array of record PKs
var ds = databaseManager.convertToDataSet(ids); // convert the ids to a JSDataset
foundset.loadRecords(ds); // load records
|
Note |
---|
Notice the array was converted first to a JSDataset object. This object, which is like a 2-dimensional array, is used to provide support for composite primary keys. |
This approach is useful to essentially copy the query of another foundset.
Code Block |
---|
foundset.loadRecords(anotherFoundset);
|
This approach allows a SQL query fragment to be used to set the foundset's underlying query. There are certain restriction on the form that a query can take. For obvious reasons, the query must return the primary key column(s) from the table to which the foundset is bound. For a full description see the reference guide.
Code Block |
---|
var sql = 'select id from my_table where my_table.column1 in ?,?,?;
var args = [1,2,3];
foundset.loadRecords(sql, args);
|
Note |
---|
See also the loadRecords API in the reference guide for complete usage options. |