[SQL Statement]Found Items[/SQL]
Performs a SQL statement on an ODBC data source.

To search through an ODBC-compliant database (or add new records, or delete or replace records,) place a [SQL] context into a WebCatalog template. You may specify any dsn (Data Source Name) that has been properly configured through the ODBC setup control panel on the web server computer.

The [SQL] context is not limited to searching -- you may perform any legal SQL statement, such as SELECT, INSERT, DROP, etc. The SQL language is too broad to describe here; it is assumed you have a working knowledge of SQL before using this context.

Example (normally you would put the following text into a .tpl file on your server and use a web browser to link to it):

[SQL dsn=Pubs&statement=SELECT * from Authors]
Found [NumFound] items<br>
[FoundItems]
[au_lname], [au_fname], [title]<br>
[/FoundItems]
[/SQL]

Whenever WebCatalog encounters a [SQL] context, it uses ODBC to attempt to make a connection to the DSN you specify. It then executes the SQL statement and retrieves the results, if any. For SQL SELECT statements, you almost always put a [FoundItems]...[/FoundItems] context inside the [SQL] context so you can display the information from the matching records.

Notice you can substitute any [xxx] tags in the SQL parameters, as in [SQL dsn=Pubs&statement=SELECT * from Authors where au_lname > '[form.name]'].
Parameter Description
dsn
Name of the database you wish to search.
username
(Optional) Username required to access this ODBC database (if none specified, "sa" is used).
password
(Optional) Password required to access this ODBC database (if no is specified, a blank password is used).
statement
Any legal SQL statement.
max
A number indicating how many records should be displayed at once before showing a list of "Show Items xx-yy" hyperlinks.

The following tags are available inside a [SQL] context:
Tag Description
 [NumFound]
A number indicating how many records matched the search request. Some ODBC drivers do not support this feature, so WebCatalog compensates by visiting every record in the database in order to count them. For large datasets, this can be very slow, and you should consider writing a SQL statement that performs a count instead. Do not put [NumFound] inside a SQL context that INSERTS new records, because the statement will be executed twice in order to perform the count. This will cause invalid a second record to be added to your database.
[FoundItems]...[/FoundItems]
Normally you put a [FoundItems] loop inside a [SQL] context that has performed a SELECT statement, so you can display all the matching records. You can put any database field names inside the [FoundItems] loop to display them in HTML.