fllogosm
 Main
 User's Guide
 Developer's Guide
 Admin's Guide
 FAQ
 License Info
 Feedback
 Queries

Databases are useful not only because they can store large, structured amounts of data but also because they allow the users to retrieve quickly and easily the data they need.

Problem is, "quickly" and "easily" is obviously going to be as good as the program allows it to get. We at Effe-Elle listened to our customers when we redesigned our query subsystem for MaxBase and the result is what you can see today.

Before you fire up the query subsystem, you need to be logged into a database table; after that, you can get into it by pressing "CTRL-F" or by choosing the "View/Query" menu item.

The first page is for users that need to perform a simple query: you can only specify a filter and one index on which to order the results by:

Query1 

In the upper text field you can set the filter conditions, while in the lower drop-down choice you should set a field on which to order the database by. The remaining space is comprised of two lists, one containing field names, and one containing operators. Clicking on a field or an operator will add that to the end of the filter conditions text field, therefore you can set them without having to type anything on the keyboard.

Note: you can use unlimited levels of parenthesis in your conditions, and you can specify the "&" (and), "|" (OR) operators to create complex filter conditions.

You can also use wildcards with = and <> operators: string* will search for every record which has a value beginning with [ string ], *string will look for records which end with [ string ], *string* will show every record which have [ string ] in them, and finally str*ing will look for any record whose selected field begins with str and ends with ing. Filters are case-insensitive. If you specify a filter condition when another one is in use, the first one will be dropped, and the most recent one will be used.

Setting an empty string in the upper text field will reset the filter conditions.

In addition to the usual < > <> <= >= = operators, you have two very MaxBase-specific operators: "Discends from" (symbol: 1^) and "Does not discend from" (symbol: 0^).

Use:

<field 1> 1^ <field 2> = <value>

 

The above construct means: find all of the records that discend (in <field 1>) from the record whose value in <field 2> is <value>.

Example; let's consider a db with the following records and fields:

Name

has manager

Mark

 No one

 John

Mark

Carl

Mark

Henry

John

Orrie

No one

If you issued the query "has manager 1^ Name = Mark" MaxBase would return John, Carl and Henry (Henry is managed by John, who in turn is managed by Mark) but no other, since Mark is not managed by itself and the others are not managed by Mark.

<field 1> 0^ <field 2> = <value>

The above construct finds all of the records that DO NOT discend from <value> in <field 2>. (This operator is the opposite of 1^)

If you donīt need the in-window tips and/or you need to order your query results on more than one index, please switch to the second page of the query subsystem:

Query2 

The GUI controls on this page can be operated exactly like the ones in the first page, only this time your screen estate is occupied almost entirely by widgets that you can use, and of course you have more control on the fields on which to order the results by.

The third page (predefined queries) is perhaps the one youīll use the most -- you can use it to create, load, delete queries that you use often.

Query3 

In order to save a query, compose it using either one of the first two pages (simple query or advanced query), enter a name for the query in the text field and press "Save predefined query".

If you want to load a query thatīs already been saved, select it with the choice widget, click on "Load predefined query" and finally hit the "find" button.

To delete one or more queries, select them from the list (you can select more than one) and hit "Delete queries".