A table browser is a tool that lets one browse database tables and/or query result sets, and in some cases edit (make changes) also. Direct table browsing is more difficult to implement than result-set browsing because of the "set-at-a-time" nature of relational theory.
- Viewing the entire table is useless in the real world (direct table browsing? huh? that is a spreadsheet.. SELECT * FROM someTable)
- {Depends on the table or result set. A TableBrowser can be used with or combined with QueryByExample technology to filter the rows displayed.}
- Spreadsheets aren't useless. Neither is viewing the entire table.
- So SELECT * FROM then, and make shortcut buttons or links to common views (click-able links to certain commands). Generic access to any table using $anyTable might be handy so that you can SELECT * FROM $ActiveTable?. And of course, drop in normalized tables will be something else to implement as the browser will have to have intelligence about what to drop in place (debating whether effort is truly worthwhile though and whether people really need to see a huge wide table, since small tables are easier to see for our eyes anyway).
Handy potential features of table browsers:
- Filtering which columns and rows are shown.
- Change the ordering and/or width of columns. Many allow one to drag column headers to the newly desired position. Extra points are awarded if the browser remembers your changes on future invokations. To change the width, they often allow one to put the cursor at the boundry between two columns and drag the boundary to create the desired width.
- Sort the contents by right-clicking on a column and selecting sort options. Some display an arrow in the column header, but my experience is that such an arrow takes up too much real estate.
- Right-click or double-click to open up an "edit window" or "view window" for the larger columns, such as a "comments" column.
- Split windowing and/or "locked" columns such that one can scroll to the right but keep certain columns within view.
- Export abilities, included delimited text, fixed-position text, and XML.
- Configurable horizontal and vertical grid lines. Sometimes it you want to turn off horizontal, vertical, or all grid lines.
- Highlight current row. It is easier to see what belongs together in a given row if the row is highlighted with color. Some tools will also highlight the current column, but I find this less effective.
- Optional "vertical" view or per-record pop-up. Sometimes it is easier to view or edit a given row if it is displayed as vertical fields instead of horizontal. See DesktopDatabase for an example. It may be implemented as a toggle of the grid view, or as a pop-up for a given row.
- Print a copy of the current window, or even the entire contents of a given table.
- A nice but uncommon feature is the ability to have totals or averages on the bottom. However, this starts to get into spreadsheet territory.
- Translation features that may, for example, turn integer values into check-boxes. A "0" would be an unchecked box, and anything else would be a checked checkbox. Other variations include pull-down lists (if in edit-mode).
--top
Aha! You want MicrosoftAccess! (j/k)
MS-Access has a table browser and can be used as a table browser, but I would not say it "is" a table browser. It probably has most of the listed features, but I wouldn't call it the ideal. Then again, MS killed off most of the competitors using TargetThenIgnore, and it is thus almost the only game in town.
Possible products or source of tools or widgets that provide or make use of a TableBrowser:
- MicrosoftAccess
- Toad (originally for Oracle, but diversifying)
- Cleverpath Forest & Trees
- Component grids for Microsoft products: http://www.xtras.net/categories/Grid.asp
- MySQL administrator
- Custom-rolled doodads using JavaScript libraries, Java, VB, Delphi, or even plain-jane generated HTML if you live with certain limitations. For example, you may use an Html FRAME tag to have a top-half that lists a table in a scrollable window, and the "edit" panel below for editing or "zooming" individual records when title or ID is clicked. (Long content often should be truncated with "..." in the top, and one uses the detail panel to see the whole thing.) Example screen: -t
----------------------------
| Employee.. | IQ | Salary ^
|------------|----|--------|
| Fred Dread | 078| 72,000 |
| Lisa Missa | 137| 84,000 | // Names are hyperlinks to populate detail panel
| Bert Burpp | 023| 95,000 v
============================
| DETAIL PANEL:............^
| Employee: [Lisa Missa ] .|
| IQ: [ 137 ] .............|
| Salary [ 84000 ] ........|
| [*Save*] [*Delete*] .....v
----------------------------
// Dots to prevent TabMunging
See also: ToadTool, NimbleDatabase, TableOrientedProgramming, TableOrientedToolWishList, ListOfQueryBrowsers