User’s Guide
8363-0M
8363-0M
Hummingbird Communications Ltd.
1 Sparks Avenue, North York, Ontario, Canada M2H 2W1
Telephone: +1-416-496-2200
Fax: +1-416-496-2207
BBS: +1-416-496-9233
E-mail: getinfo@hummingbird.com
Web Site: www.hummingbird.com
FTP: ftp.hummingbird.com
RESTRICTED RIGHTS LEGEND. Unpublished rights reserved under the copyright laws of the United States. The SOFTWARE
is provided with restricted rights. Use, duplications, or disclosure by the U.S. Government is subject to restrictions as set forth in
subparagraph (c) (1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013, subparagraph (c)(1)
and (2) (a) (15) of the Commercial Computer Software-Restricted Rights clause at 48 CFR 52.227-19, as applicable, similar clauses in
the FAR and NASA FAR Supplement, any successor or similar regulation.
Copyright © 1998 Hummingbird Communications Ltd. All rights reserved. BI/Analyze, BI/Analyze CubeCreator, BI/Broker,
BI/Broker Admin, BI/Broker Repository, BI/Query, BI/Query Admin, BI/Query Reports, BI/Query Reports Chart Editor,
BI/Query Update, BI/Query User, BI/Web, and BI/Web Personal Portfolio are trademarks of Hummingbird Communications Ltd.
and/or its subsidiaries.
BI/Query Reports is made with MapInfo MapX, a product of MapInfo Corporation, Troy, New York USA, © 1997. All rights
reserved.
DB2 is a trademark, and OS/2 is a registered trademark, of International Business Machines Corporation.
Microsoft, Microsoft Excel, Microsoft Word, Visual Basic, Windows, and Windows 95 are registered trademarks, and Windows NT is a
trademark, of Microsoft Corporation.
Ingres/Net is a trademark of Computer Associates International, Inc.
Java is a trademark of Sun Microsystems, Inc.
Oracle and SQL*Net are registered trademarks of Oracle Corporation.
Photo clipart copyright © 1996 PhotoDisc, Inc.
SequeLink is a trademark of Intersolv, Inc.
Sybase is a registered trademark of Sybase, Inc.
Teradata is a registered trademark, and WinCLI is a trademark, of NCR Corporation.
All other copyrights, trademarks, and tradenames are the property of their respective owners.
DISCLAIMER. Hummingbird software and documentation has been tested and reviewed. Nevertheless, Hummingbird
Communications Ltd. makes no warranty or representation, either express or implied, with respect to the software and documentation
included. In no event will Hummingbird Communications Ltd. be liable for direct, indirect, special, incidental, or consequential
damages resulting from any defect in the software or documentation included with these products. In particular, Hummingbird
Communications Ltd. shall have no liability for any programs or data used with these products, including the cost of recovering such
programs or data.
Information in this document is subject to change without notice and does not represent a commitment on the part of Hummingbird
Communications Ltd. Not all copyrights pertain to all products.
This guide contains proprietary information that is protected by copyright. All rights are reserved. This guide may not be photocopied,
reproduced, or translated into another language, in whole or in part, without prior written consent from Hummingbird.
This edition published September 1998.
Printed in Canada.
Contents
Section 1: Before You Begin Working in Design Mode 19
Data Objects Represent Tables in the
Welcome to BI/Query 5 Database 20
About This Guide 5 Relationships Tie Information Together 21
Illustrations 7 Buttons Automate Activities 23
Conventions 7 Ornaments Enhance the Data Model 23
What to Look for Online 8 Types of Data Models 24
Online Help 8 The Split Data Model 25
Tool Tips 8 The Combined Data Model 27
Electronic Documents 8 Building Queries 28
Technical Support 9 Data Values Restrict Results 29
In North America 9 Prompts Focus Your Queries 30
Outside North America 9 Variables Automate Operations 31
Contacting Technical Support 10 Turning Data into Reports 31
Troubleshooting Problems using the Securing and Distributing Information 31
Trace Utility 10 Publishing Data Models and Queries 31
Professional Services 11 Securing Data Models and Queries 32
Contacting Professional Services 11 Scheduling Queries 33
The Business Intelligence Product Line 11
Hummingbird BI/Broker 12 Getting Started 37
Contents i
Connecting to the DBMS 47 Creating Lookup Tables 77
Connection Files 48 Adding Indices 78
Creating Connection Files 48 Denormalizing Tables 78
Testing Connection Files 51 Computing Common Summarizations 79
Distributing Connection Files 52 Reorganizing Table Structures 79
Logon Scripts in TCP/IP Connection Providing Metadata 81
Files 52 Delivering the Right Data Model 82
How the Scripts Work 53 Controlled Data Model 82
Examples of Logon Scripts 54 Logical Data Model 82
Understanding Prompt/Reply Pairs 55
Modular Data Model 83
Editing Scripts 57
EIS Data Model 85
Editing TCP/IP Settings 58
Ad Hoc Data Model 88
Distributing TCP/IP Settings 60
Ad Hoc/Report Data Model 89
Setting Connections 61
Multiple Data Models 90
Default Connections 61
Automatic Connections 62 Creating a Data Model 93
To Multiple Databases 64 Opening a New Data Model 93
ii Contents
Creating Join Conditions 104 Performing Calculations with Queries 146
That Include a Prompt or Variable 106 Scheduling Queries 146
Using Tables More Than Once 108 Saving Queries 147
Specifying Correlation Names 109 Creating Relationships between Data
Objects 147
Merging Data Objects 111
Performing Special Operations 148
Editing Join Conditions 113
Connecting to the DBMS 148
Creating Tables in the Database 114
Making Changes to the Database 149
From Query Results 115
From Data Objects 116
Balancing the Load on the Network 153
Assigning Permissions 121 Connecting to the DBMS 153
Assigning Default Settings 122 Optimizing Connection Performance 153
Setting Data Model Passwords 123 Setting Automatic Connections 155
Checking the Design 124 Running Efficient Queries 156
Saving the Data Model 125 Using Data Values Files 156
As a Split Data Model 126 Restricting Queries to Specific Information 157
As a Combined Data Model 127 Submitting Queries to a Table in the
Database 157
Controlling User Access 131
Modifying the SQL 158
Controlling What Users Can See 131
Estimating Database Resources 158
Within the Data Model 131
Ranking Data Objects for Oracle Databases 158
Using the BI/Broker Repository 137
Setting Query Limits 160
Controlling What Users Can Do 142
Using BI/Query Permissions 160
Assigning System Permissions 142
Using BI/Query Preferences 161
Assigning BI/Query Permissions 142
Scheduling Queries 161
Setting BI/Query Preferences 144
Managing Scheduled Jobs 162
Making Changes to a Data Model 145
Displaying Scheduled Jobs 162
Modifying Queries 145
Setting Display Options 163
Managing the Network Load 146
Managing Jobs 164
Contents iii
Creating an Effective Design 167 From a Query 191
Basic Principles 167 From Results Files 196
Decide What’s Appropriate 167 Creating Ornaments 198
Be Consistent 168 Assigning Icons to Data Objects 200
Use Restraint 169 Specifying Colors 201
Use Contrast 170 For Windows 202
Provide Unity 170 For Objects and Design Windows 202
Establishing a Layout 171 New Colors 204
Layout Grid 171 Customizing Online Help 205
Masthead and Logo 172 Adding Information 205
Lines 173 Creating Help Files 206
Adding Emphasis 173 Creating Additional Help 206
Type 173
Distributing a Data Model 211
White Space 174
Split Data Model 211
Boxes 175
Storing Each Layer in Separate Folders 212
Graphics 176
Establishing the Path to the Administrator-
Color 176 layer File 213
Combined Data Model 214
Adding Value to a Data Model 179
Using the BI/Broker Repository 215
Providing Metadata 179
How the Data Model Is Stored 216
How Metadata Is Displayed 180
Setting Up to Publish 216
Adding Metadata to the Database 181
Using a File Server 219
Understanding Metadata Queries 183
Using Diskettes 220
Using Template Queries to Specify the
Metadata Source 186 Using Mail 220
Loading Metadata 188 Using the Database 221
Creating Attribute Descriptions 190 Minimizing File Size 222
Directly in BI/Query 191 Understanding BI/Query Database Tables 223
iv Contents
Distributing the Initial Version 226 Using Data Values, Prompts, and Variables 257
Distributing a Revised Version 226 Data Values Files 257
Naming and Storing Data Values Files 258
Maintaining a Data Model 233
Creating Data Values Results Files 260
Split Data Models 233
Creating Data Values Query Files 264
Combined Data Models 234
Using Data Values Files to Alias Data 266
Refreshing the Data Model 235
Prompts 269
Data Objects 235
Naming and Storing Prompts 270
Queries 238
Creating Single Prompts 270
Group Prompts 271
Section 3: Getting the Results You Conditional Prompts 274
Want Importing Prompts 279
Variables 280
Specifying Data Formats 245 Creating Variables 281
For Typing Data 245
Importing Variables from a File 286
Default Format 246
Matching Attribute Formatting 246 Building Queries 291
Numbers 247 The Basics 291
Contents v
Matching Items in a List 305 Without a Correlation 352
Finding a Range of Values 306
Scheduling Queries 357
Finding Unknown Values 306
Naming and Prioritizing a Job 357
Applying Your Own Operator 307
Specifying When to Run a Job 358
Saving Standard Queries 307
Scheduling Once-only Jobs 358
Saving Results 309
Scheduling Recurring Jobs 359
Publishing Queries 310
Scheduling Jobs Based on Events 362
Retrieving Queries 312
Advanced Scheduling 364
Building Advanced Queries 315 Specifying Job Actions 365
Qualifying One Attribute with Actions for Running Queries and
Another 315 Refreshing Reports 366
Using a Subquery 316 Distribution and Notification Actions 367
Reversing Qualifications 319 Run Command on Server Action 371
Qualifying a Query with a Variable 320 Trigger Event Action 371
Modifying the SQL 321 Notifying Yourself 373
Modifying a Query for Selected
Results 323 Working with Results 377
Creating Dynamic Relationships 324 Sorting Results 377
vi Contents
Updating Records in the Database 393 Using Ornaments 426
Setting Up BI/Query 393 Updating the Database 426
Setting Key Fields 393 Using OLE 426
Assigning the Update Database Permission 394 Exporting Information 431
Granting Database Permissions 395 Queries 431
Adding, Modifying, and Deleting Results 432
Records 395 Preparing Results for Export 435
Adding Records from Another Application 397 Exporting to Excel using DDE 438
Applying Updates to the Database 400 Using Mail 445
Correcting Errors 400
Index 447
Contents vii
Before You Begin
Welcome to BI/Query 5
Basic Concepts 17
Getting Started 37
Welcome to BI/Query 5
START HERE
Welcome to BI/Query
Page 5
Getting Started
Page 37
Automating Tasks
Page 405
Importing and Exporting
Information
Page 425
6 Welcome to BI/Query
This guide applies to BI/Query Admin, BI/Query User, and BI/Query
Update for Windows 95 and Windows NT. It’s organized into four
sections. The table of contents at the beginning lists the sections, the
chapters in them, and the main sections in each chapter. A table of
contents at the beginning of each chapter lists its contents in detail.
Illustrations
The illustrations in this guide are based on data from a fictitious data
model. Depending on the appearance of your own data model and the
DBMS and connection types you use, some illustrations may look
somewhat different than what you see on your monitor. Nevertheless,
their functionality is the same.
Conventions
This guide uses certain terminology and conventions to help you use it
effectively.
Welcome to BI/Query 7
What to Look for Online
Everything you need to work with BI/Query is available online — in
the form of online Help, tool tips, and electronic documents.
Online Help
You can find Online Help provides step-by-step instructions that answer the
out what’s new question “How do I…” Context-sensitive Help gives information on
in BI/Query
online. Choose the spot. And a full-text search facility allows you to find exactly what
Help>Contents, then click you’re looking for. Online Help is quick and easy to use. Best of all,
What’s New in BI/Query. you don’t have to leave BI/Query to find the answers you need.
To Do This Do This
Get Help for a dialog box Click the Help button in the dialog
box.
Tool Tips
Tool tips allow you to find information about menu commands and
toolbars. Position the cursor over the item to display a brief description
on the status bar.
Electronic Documents
All of our user’s guides are available online as Adobe Acrobat Portable
Document Format (PDF) files. If you installed the documentation
8 Welcome to BI/Query
when you installed BI/Query, it’s accessible from the Start menu. It’s
also available on the installation CD.
To open a PDF file, you need Acrobat Reader. It’s provided on the
installation CD and is also available at Adobe’s World Wide Web site
(http://www.adobe.com). Using Acrobat 3.0 or later allows you to
take advantage of its Find facility.
Technical Support
The administrator should be your first contact for technical support.
The administrator, or the connectivity person in your organization, is
most familiar with your particular configuration. If the problem isn’t
resolved, the next step depends on where this product was purchased.
In North America
If you purchased this product within North America (United States and
Canada), you can obtain technical support from Hummingbird’s
Business Intelligence Division. Technical support is available Monday
to Friday between 8:00 a.m. and 7:00 p.m. Eastern time. It’s also
available online.
Welcome to BI/Query 9
Contacting Technical Support
You can report problems and suggest enhancements in our software by
contacting Technical Support at:
Voice +1-613-548-4355
Fax +1-613-548-7616
E-mail hbi-support@kingston.hummingbird.com
Web www.hummingbird.com
FTP ftp.hummingbird.com
10 Welcome to BI/Query
Professional Services
Hummingbird supports its products by offering consulting and training
services worldwide. Working alongside your own technical and non-
technical staff, our Professional Services group can help you identify
areas where improved information management can enhance your
business performance. And we can supply the expertise you need to
bring these opportunities to fruition.
Fax +1-613-548-7801
E-mail proservices@hummingbird.com
Web www.hummingbird.com
Welcome to BI/Query 11
Hummingbird BI/Broker
Hummingbird BI/Broker is the cornerstone of Hummingbird’s managed
business intelligence solution. It’s an application server that provides
shared services and a common repository of information that users can
access using Hummingbird BI desktop applications or their Web
browsers. BI/Broker manages security, scheduling, and distribution
services in a centrally managed client/server environment.
Hummingbird BI/Web
Hummingbird BI/Web uses the services of BI/Broker to provide query
and reporting capability to Web users without requiring the installation
of any desktop software.
Hummingbird BI/Query
Hummingbird BI/Query is a query and reporting tool that provides a
comprehensive solution for accessing, analyzing, and presenting data in
a client/server environment. With its graphical approach and intuitive
interface, BI/Query gives users flexible access to the data while
maintaining organizational control.
12 Welcome to BI/Query
The BI/Query product line consists of four separate applications.
Hummingbird BI/Analyze
Hummingbird BI/Analyze is an Online Analytical Processing (OLAP)
tool that allows users to extract summary information from corporate
databases and analyze it from various business perspectives.
BI/Analyze creates reports with tables, charts, and graphs from multi-
dimensional data sources called HyperCubes. Hypercubes are
constructed using BI/Analyze CubeCreator, an integrated cube-building
engine. They allow users to drill up and down through successive layers
of detail to discover trends, patterns, and relationships in their business.
Welcome to BI/Query 13
Contacting Hummingbird Sales
Regional sales offices are located worldwide. For a current list of
contacts and phone numbers, contact Hummingbird Sales at:
Voice +1-416-496-2200
Fax +1-416-496-2207
E-mail getinfo@hummingbird.com
Web www.hummingbird.com
14 Welcome to BI/Query
Basic Concepts
The Data Model Represents the Data 18 Securing Data Models and Queries 32
Design Windows Provide a Design Environment 18 Scheduling Queries 33
Working in Design Mode 19
Data Objects Represent Tables in the Database 20
Relationships Tie Information Together 21
Actual and Embedded Relationships 22
Buttons Automate Activities 23
Ornaments Enhance the Data Model 23
Types of Data Models 24
The Split Data Model 25
Administrator Layer 25
User Layer 26
The Combined Data Model 27
Building Queries 28
Data Values Restrict Results 29
Prompts Focus Your Queries 30
Variables Automate Operations 31
Turning Data into Reports 31
Securing and Distributing Information 31
Publishing Data Models and Queries 31
Saving and Publishing 32
Opening and Retrieving 32
Basic Concepts
In information-driven organizations, people need to turn corporate
data into information they can use to make informed business decisions.
At the same time, Information Technology (IT) professionals are
concerned with corporate security and standards. And organizations
want to make data accessible without compromising IT goals.
Sometimes, that means providing people with predetermined access; at
other times, it means allowing people more freedom. BI/Query gives
organizations the flexibility to provide the right mix of user access with
IT support for the perfect corporate fit.
Basic Concepts 17
The Data Model Represents the Data
BI/Query makes data access easy because it allows organizations to
depict their databases in a way that makes sense. Its data model, a
graphical representation of data in the database, is the user’s gateway to
corporate information. This visual approach to delivering business
information means decision makers can understand the data without
having to understand the database.
Data objects in this data model represent a database containing information on regional
offices, staff, retailers, sales, and products.
The administrator creates the data model, tailoring it to the exact needs
of the user community — getting the right data to the right people and
providing support for novices and “power users” alike.
18 Basic Concepts
Windows can be linked to tie related information together; buttons
provide a means of navigating from one window to another.
Ornaments
Executive buttons
Data objects Relationships
Basic Concepts 19
provides tools for resizing and aligning objects. The illustration below
shows a design window in Design Mode.
Layout palette
20 Basic Concepts
Data objects display attributes in an attribute window
Basic Concepts 21
verb phrase describes how two data objects are related so that the first
data object, the relationship, and the second data object can be read as a
sentence (such as retailers, place, sales).
Data objects can have more than one relationship, allowing users to
retrieve different results using the same data objects. The example
below shows that users can use the works in relationship to find
information about an employee who works in a particular department;
they can also use the managed by relationship to find information about
an employee who manages a particular department.
Double-click to
display attributes
22 Basic Concepts
Buttons Automate Activities
Buttons (sometimes called executive buttons) automate frequent activities.
Buttons are versatile — they allow users to automatically connect to the
database, submit multiple queries, combine the results, and generate a
report or HyperCube — all with a single click of the mouse. Buttons
can also display design windows, save results to files, export results to
other applications, and run Visual Basic and Excel applications.
Basic Concepts 23
Types of Data Models
The administrator creates a data model that includes data objects and
relationships, join conditions, and permissions. It may also include
“value-added” items such as buttons, queries, prompts, variables, data
values query and results files, computed attributes, ornaments, attribute
formatting, and multiple design windows. If the administrator assigns
them the appropriate permissions, users can also add those items.
24 Basic Concepts
The Split Data Model
A split data model is stored as two layers — an administrator layer and a
user layer. Because changes made by the administrator don’t typically
affect those made by the user, this is the type of data model
recommended for most sites.
Administrator Layer
The administrator layer of a split data model is the data model as created
by the administrator. It consists of a file with the extension .gqa, a
Queries folder, and a DataVals folder. The Queries folder stores
queries, prompts, and variables. The DataVals folder stores data values
query and data values results files.
Administrator Layer
Basic Concepts 25
User Layer
The user layer of a split data model consists of a file with the extension
.gqu, a Queries folder, and a DataVals folder. Along with the
administrator layer, the administrator distributes an essentially empty
copy of the user-layer file to all users. The user-layer file contains a few
default settings, such as preferences. It also contains the path to the
administrator layer; when a user opens the user-layer file, the path
allows BI/Query to find the administrator layer. BI/Query then
combines all the elements stored in the user-layer file with the elements
stored in the administrator-layer file.
User Layer
The first time a user opens a split data model, the user sees the data
model stored in the administrator layer. When the user layer is stored in
a folder separate from the administrator layer, empty Queries and
DataVals folders are created to store user-defined queries, prompts,
variables, and data values files. Any other customizations the user adds
(such as extra buttons, ornaments, and design windows) are saved in the
user-layer file.
26 Basic Concepts
In a split data model, the user layer contains only the elements added by the user; the
administrator layer contains only the elements provided by the administrator. When a
user opens the data model, the administrator and user layers are combined seamlessly.
The next time the user reopens the data model, the user sees the
administrator’s data model as well as all the customizations he or she has
added. The changes made by one user don’t affect those made by other
users. In addition, users can’t make changes to the administrator layer.
Basic Concepts 27
Combined Data Model
Building Queries
The data model is the starting point for building queries to retrieve
information from the database. You build queries by selecting the
attributes that represent specific information you want to retrieve,
placing restrictions on your query, then sending the query to the
database. The query results are displayed in a separate window.
28 Basic Concepts
You can use more than one object in the data model to build a query.
You can also define all of your specifications in one step, or you can
build a query incrementally by adding specifications query by query
until you retrieve exactly the information you want.
You can qualify an attribute with one or more data values in order to
retrieve results that correspond only to those values. For example, you
Basic Concepts 29
can retrieve information about retailers located in Canada and USA by
qualifying a query with those countries.
You can type values into a qualification or select them from a list.
Choosing from a list of data values is easier than typing and avoids
potential uncertainty about capitalization and spelling.
A user can also build a query with multiple prompts, in which the value
entered into one prompt restricts the values available for the next. This
feature allows users to quickly zoom in on increasingly detailed
information when they submit the query.
30 Basic Concepts
Variables Automate Operations
Variables allow users to define an operation in a query that is performed
when the query is submitted. That operation specifies the search
conditions for the query and can contain anything that is valid in an
SQL WHERE clause (attributes, operators, values in the database,
calculations, functions, subqueries, or stored procedures). Variables
determine values in the database while the query is running so users
don’t have to specify them in queries. For example, you can use a
variable to retrieve retailer sales that were placed today, before today,
and so on. The variable determines what today’s date is, and BI/Query
returns the corresponding results.
Basic Concepts 31
BI/Query users to retrieve them. Published data models and queries
can even be made accessible to people in the organization who don’t
have BI/Query on their desktops. For these people, a view of the
repository is available by opening the BI/Web Personal Portfolio from
their Web browsers.
32 Basic Concepts
Scheduling Queries
With the appropriate system permissions, users can schedule queries that
have been published to the repository. They can schedule queries to be
submitted to the database at set intervals or after specific events have
occurred, and they can choose from a variety of methods to deliver the
results to those who need them. If they have the appropriate system
permissions, they can schedule other users’ queries as well as their own.
Basic Concepts 33
Getting Started
Installing BI/Query 37
Starting BI/Query 37
Retrieving a Published Data Model 39
Opening a Split Data Model 40
Loading from the Database 41
Finding the Administrator Layer in a Split Data
Model 42
When It’s Been Moved or Renamed 42
When It’s Been Copied Elsewhere 43
Getting Started
This chapter describes how to start BI/Query and open a data model.
Installing BI/Query
For installation instructions, see the BI/Query installation guide.
Starting BI/Query
BI/Query consists of three applications User, Update, and Admin. One
of the three appears under Hummingbird Applications on your Start
menu. You’ll click it to start the application.
Although you may have access to the repository, you don’t always need
to be logged in to it while you run BI/Query. Instead, you can choose
to work “offline” — without logging on. This doesn’t affect your
ability to connect to the database. And you can choose to connect to
the BI/Broker later in the session.
When you start BI/Query, you can choose one of four options.
• open the data model you were using when you last exited from
BI/Query
• open a data model you have stored locally or on a networked server
• retrieve a data model from the repository (available only if you have
access to the repository)
Getting Started 37
• open a design window in which to create a data model
To start BI/Query
1 Choose Start>Programs>Hummingbird BI>BI/Query Admin,
BI/Query User, or BI/QueryUpdate.
2 To log in to the BI/Broker Repository, in the Hummingbird
Business Intelligence dialog box, type your user name and
password.
OR
Choosing Work To use BI/Query without access to the repository, click Work Offline.
Offline means you
won’t have access
to the repository.
It doesn’t affect your ability to
connect to the database; you
can still submit queries and
work with the results. If you
need to publish, retrieve,
schedule, or secure your 3 In the Welcome to BI/Query window, click the icon that
work, you can log in to the
represents the data model you want to open. (The Repository Data
repository at any time; choose
File>Work Online.
Model option is available only if you’ve logged in to the BI/Broker
Repository.)
38 Getting Started
4 If a message informs you that a newer version of the data model
exists in the database, to open it, click Yes.
When you open a published data model, a message tells you that a
newer version exists in the repository and give you the opportunity to
retrieve it.
Getting Started 39
3 Select a data model, then click Open.
40 Getting Started
No matter which BI/Query application you are using, you open the If you can’t select
user-layer file. The user-layer file contains a path to the administrator- a button or orna-
ment in Design
layer file. When you run BI/Query User or BI/Query Update and open Mode using
the user-layer file, this reference allows BI/Query to combine the two BI/Query User or BI/Query
layers. Both the core data model plus the user’s own customizations are Update, it’s because you’re
using a split data model and
available; there’s no visible difference between the user and
the object is stored in the
administrator layers. When the administrator runs BI/Query Admin administrator layer. Users can
and opens the user-layer file, the contents of the file are moved to the select and modify only ele-
administrator-layer file, where they’re saved when the file is saved. In ments in the user layer. Any
item in a dialog box that has a
other words, the administrator’s changes to the user layer become part
lock icon beside it was created
of the core data model. by the administrator and also
can’t be modified by the user.
A combined data model is a single file with the extension .gql. Unlike a
split data model, users can change anything for which they have the
appropriate permissions. (For more information on split and combined
data models, see “Types of Data Models” on page 24.)
When the user loads the revised data model, any associated queries,
prompts, and data values files that have been saved in the database are
also loaded, as are any reports created with BI/Query Reports that have
been stored in the Reports folder with the data model. BI/Query
makes a local copy of the older version of the administrator-layer file
and gives it the extension .old. (Users can still use the older version of
the administrator-layer file by deleting the new .gqa file, then renaming
the .old file to .gqa.)
In the case of a split data model, BI/Query closes the data model, then
re-opens it using the new version of the administrator-layer file. The
Getting Started 41
data model appears, containing the existing user elements plus all the
elements in the revised administrator layer.
2 In the Find dialog box, find and open the administrator-layer file.
3 Click Save.
4 In the Save dialog box, specify the new location for the file.
42 Getting Started
When It’s Been Copied Elsewhere
If a revised data model has been distributed but the changes aren’t
displayed when you open it, you may not be using the latest version.
This may be because the administrator has copied the administrator-
layer file to another folder and not deleted or renamed the original file.
Getting Started 43
Connecting to the DBMS
Many network connections that BI/Query supports are established Because the mid-
using middleware, connectivity software that allows application programs dleware market
changes so often,
to retrieve information from a database. Middleware may in turn use a information about
gateway, a layer of software between the client middleware and the network connections cur-
DBMS that translates one vendor’s DBMS to another’s. rently supported is available in
the online Help. You can also
Certain network connections are established using TCP/IP, a type of confirm connectivity options
middleware that starts a session with a host machine in which the host with Hummingbird Sales.
Users can connect to one DBMS, using one connection file, per data
model. If your organization stores data in more than one DBMS, users
can access all of them using a single data model.
Different users can use the same data model with different network
connections. This is useful, for example, if a database is being moved
from one machine to another. Users can continue to use the data
model with the original network connection while a copy of the
database is being tested on another machine using another network
connection. If users will create or edit connection files, you need to
supply them with the appropriate connection information (database
name, host name, and so on).
You can also set preferences that minimize the load on the network.
For example, you can set the Rows Retrieved before Prompt
preference to specify the number of rows to be retrieved before users
are prompted to retrieve more. And you can set the Query Time
before Prompt preference to be prompted to cancel a query.
If the Rows Retrieved before Prompt and the Query Time before
Prompt permissions have been assigned, the corresponding connection
preferences must be of lesser value. For example, the Rows Retrieved
before Prompt permission for a data model may be set to 20,000. If the
data model has multiple connections and one connection is slower than
the others, you may decide to set the Rows Retrieved before Prompt
preference for that connection to 10,000. Users are prompted after
3 Click Connect.
4 If the connection fails, check the connection parameters and
reconnect using BI/Query or another application that uses that
connection.
Using this example, the Telnet session would look like this:
Username: Paul
Password:
Welcome to VAX/VMS
TCPIP.Prompt01 “Username:”
TCPIP.Reply01 “<hostuserid>”
TCPIP.Prompt02 “Password:”
TCPIP.Reply02 “<hostpassword>”
TCPIP.Prompt03 “Choice”
TCPIP.Reply03 “2”
Once you determine what prompts the DBMS uses, you can provide
the corresponding replies. In many cases, the replies are tags pointing to
information in a corresponding connection file. This table describes the
available reply tags.
Editing Scripts
You need to edit the default logon script for each TCP/IP connection You can insert a
file. Modifications may be as simple as changing the TCP/IP.Prompt01 prompt/reply pair
into the logon
value from Username: to Logon:. Or they may be more complex, adding script. (The order
several new prompt/reply pairs. of the pairs must reflect the
order in which the Telnet ses-
To edit a script sion asks for them.) Click the
pair above which you want to
1 Choose Host>Connections. insert the new pair, click
2 In the Connections dialog box, select the TCP/IP connection file Insert, then edit the pair.
that contains the script you want to edit, then click Edit.
3 In the Edit Connection dialog box, click the prompt/reply pair that
you want to edit, then click Edit.
4 In the Edit Script Item dialog box, type a value into the Prompt
text box.
4 Click OK.
Users can copy the .reg file to their computers. When they double-click
the file, the TCP/IP settings are copied to the appropriate location in
the Registry.
Setting Connections
Once you’ve created, tested, and distributed connection files, you can
set users up to use them to connect. You can set default connections,
automatic connections, and connections to multiple databases.
Default Connections
You can set a connection file as the default connection for a data model
to make connecting fast and easy. Setting a default allows users to
connect without having to specify a connection each time.
Automatic Connections
Users can connect automatically to the DBMS in two ways. They can
connect for the duration of a BI/Query session or only while they’re
submitting queries.
You can set users up to connect in this manner by assigning the Enforce
Connect per Query permission. If you don’t assign this permission,
users can set the Connect per Query preference.
3 Click OK.
To Multiple Databases
You can connect If your organization stores data in multiple databases, users can access all
to different data- of them using a single data model. You set them up by assigning
bases when
they’re of the
connection files to specific design windows. For example, if you want
same type (homogeneous) or users to connect to Oracle and Sybase databases from one data model,
when they’re of different you can assign a connection file to one design window that connects to
types (heterogeneous). Oracle, then assign another connection file to a second design window
that connects to Sybase. (Any design window with no connection file
assigned uses the same connection file as the data model.) When users
submit a query, BI/Query connects using the connection file assigned
to the design window they used to build the query.
5 Click OK.
6 In the Design Windows dialog box, click Done.
Once users have the appropriate connection files, they can connect to
the DBMS. If the data model they’re using is set up to connect
automatically, BI/Query connects to the DBMS each time they open
the data model or each time they submit a query. If the data model isn’t
set up to connect automatically, they need to connect to carry out
activities requiring access to the DBMS. If the user needs to supply any
information such as a password or user ID not included in the
connection file, they’re prompted for it.
When users no longer need access to the DBMS, it’s good practice to
disconnect from it to reduce the load on the database server.
3 Click Connect.
4 If the Enter Connection Information dialog box appears, type the
required information, then click OK.
Users’ job functions also determine how they use BI/Query. Even
users in the same department need different information or different
ways of accessing it. For example, sales managers who need quick
answers to standard questions may want to generate reports for weekly
sales meetings that analyze sales by month and quarter. Sales
representatives may need to build specialized queries including
qualifications and calculations in order to analyze sales by product,
region, and country.
For users who will submit queries and use reports that you supply, you
can provide a data model that provides push-button access to those
activities; the data model can also contain an EIS interface to give users
access to increasingly specific data. You need to know what queries
users will submit so that you can build “canned” queries and predefined
report templates. You also need to know how complex those queries
and reports are, and how frequently they will be run, in order to
balance the load on the database server.
Computer Skills
Don’t underesti- In each user group, novices and “power users” will have varying
mate users’ ability computer skills and technical facility. Some will feel confident enough
to hone their
to use the advanced features of BI/Query, and those advanced users
computer skills as
they become familiar with may want the flexibility to specify their own SQL in queries, perform
BI/Query and the tasks calculations, combine results sets, or create their own joins between
they’re carrying out. Even tables. Novice users, on the other hand, may be content to build simple
casual users will realize the
benefit of building their own queries or use queries that you provide.
ad hoc queries.
Denormalizing Tables
The pattern of access to a data warehouse or database used primarily for
decision support is very different than the pattern of access to an
operational database used to capture data. The design of databases for
OLTP (OnLine Transaction Processing) usually involves reducing
redundancy by creating a schema of normalized tables. However, this
design creates a large number of tables, which users can find confusing.
It’s easy for the user to retrieve this data when the table is organized like
this (call it “wide” format):
TABLE sales
Company char(20)
Q1 money
Q2 money
TABLE sales
Company char(20)
Period char(2) ; Q1 or Q2
Amount money
TABLE salesq1
Company char(20)
Q1 money
Table salesq2
Company char(20)
Q2 money
The choice between making “wide” tables (tables with several columns
containing the same type of data) and “narrow” tables (tables with one
column that indicates the type of data and one column for the data)
depends on the need to compare data of each type in a report
calculation. For example, it’s easier to compare (calculate with) data in
the same row than data in different rows. However, it’s easier to
aggregate over all the data when it’s in a single column.
Providing Metadata
You can provide metadata for the data objects and attributes in a data
model to give users a clearer understanding of their data and help them
build queries. For data objects, metadata replaces database table names
with display names; for attributes, it replaces database column names
with business terms. And it provides short descriptions for both that
explain what kind of information they represent. You set up the
necessary queries to specify the metadata source. (If your database
doesn’t already store metadata, you can use BI/Query to create it.)
Loading the metadata into the data model submits the queries to the
There are a number of strategies you can use to deliver a data model
that strikes the balance you need.
If different user groups or departments use some of the same data (such
as tables that store employee information), and if they’re allowed access
to each other’s data, you can build a separate data access environment
When your data is complex and users aren’t technically skilled, an EIS
data model provides a controlled environment that’s easy to use. It can
be used in the first phase of implementation to give users time to learn
BI/Query and the data model. And if there’s no time for training, it
gets them up and running quickly.
You create an EIS interface by creating the design windows you need;
adding data objects and relationships; creating the queries, reports, and
HyperCubes users will run; then creating the buttons that display the
windows, run the queries, and generate the reports and HyperCubes.
Creating Buttons
Buttons provide the mechanism for moving from one design window
to another in the series and for running queries, reports, and
HyperCubes. In the first window, create a button and link it to a
second window; in the second window, create a button and link it to a
third window, and so on. In each window, link buttons to the queries,
reports, and HyperCubes that users will run. Test each button to ensure
it works properly. (See “Creating Buttons” on page 406.)
The following table suggests the design windows that you can include
in an ad hoc/report model. Providing buttons in each window allows
users to navigate from one window to another.
User Queries/ User Typically left blank so users can add their
Reports own buttons.
Alternatively, you need to create more than one data model. While
creating a different data model for each group may be initially more
time-consuming, it can satisfy each group’s data access needs better
than one data model that includes all information for all users.
The administrator creates a basic data model that gives users access to
the data and the BI/Query functionality they need. The administrator
can also add value to a data model by including metadata, buttons,
queries, prompts, reports, data values query and results files, computed
attributes, graphics, and so on. The administrator may create different
versions of the data model for groups of users depending on their needs.
Create a standard data model that includes Add value to the data model by adding
data objects, relationships, join conditions, buttons, graphics, queries, and so on.
default settings, and permissions.
This chapter describes the things you need to do to create a data model
that contains data objects, relationships, and join conditions and that
allows users to query the database.
OR
If you’re already running BI/Query and you’ve opened a data
model, close it, then choose File>New.
3 Rename the Untitled window. (See “Creating Design Windows”
on page 95.)
4 Click Done.
If you assign the Edit Data Model and Save Data Model permissions,
users can create their own design windows and add, copy, move, edit,
and delete buttons and ornaments. In a split data model, objects and
windows created by the administrator are stored in the administrator
layer; users can’t modify or delete them. Objects and windows created
by a user are stored in the user’s user layer.
In addition to loading tables from the database, you can load any
associated metadata. You can also create new tables (see “Creating
5 Type the creator (or collection or database) that created the tables
into the Creator text box.
6 Click OK.
7 In the Load Tables dialog box, select the tables you want to load.
To organize attributes
1 In Design Mode, double-click a data object.
2 In the attribute window, choose Design>Reorder Attributes.
3 In the Attribute Order dialog box, specify an organization for the
columns using the First, Last, Up, Down, and Sort buttons.
If a large number
of attributes is dis-
played, start by
using the Unorder
All button to move all the col-
umns under Unordered
Attributes, then use the Move
button to move the attributes
under Ordered Attributes in
the order you want.
4 Click OK.
Embedded Relationships
Connecting two data objects creates an embedded relationship.
Actual Relationships
Certain tables in your database may already contain data that relates to
data in other tables. For example, a database may contain one table with
information about employees, another with information about
committees, and another that relates information about employees and
the committees on which they serve. You can load these tables into a
Names can contain spaces and other punctuation characters not allowed Attribute names
in the SQL string for a query. All data objects and relationships must become column
headings in
have names, and their names must be unique. (If you provide the same
reports. If names
data object more than once and no satisfactory names come to mind, are understandable, users
simply number them — for example, Employee1 and Employee2.) won’t need to edit them each
Objects with the same names can cause ambiguity and errors when time they generate a report.
And if the values returned by
users attempt to load stored queries.
an attribute are short, use a
short attribute name so users
Names you apply to data objects, actual relationships, and attributes
don’t need to shorten it.
don’t affect the names of the corresponding tables or columns in the
database. When users formulate queries, BI/Query automatically
converts to the underlying database names when it generates the
corresponding SQL string.
3 Click OK.
To rename an attribute
1 In Design Mode, double-click a data object.
2 In the attribute window, click an attribute.
3 In the Edit Attribute dialog box, type a new name into the Name
text box.
4 Click OK.
Join conditions allow users to include attributes from both data objects
(and if the data objects are related by an actual relationship, the actual
relationship as well) in a query. For example, if you join Employee ID
of the Employee data object with Employee ID of the Serves On data
object, and the Committee Name of Serves On with the Committee
Name of the Committee data object, BI/Query can determine which
employee serves on which committee.
The attributes you choose should represent the same or similar data in
each table. (If you’ve selected attributes to be joined that have different
data types, a warning appears. If the data types are similar, such as
varchar and char, you can override the message.) For example, you might
provide a relationship between the Retailers and Sales data objects,
specifying an equal join on the retailer number in each table so that
users can retrieve information about retailers who have placed sales.
If your DBMS supports outer join syntax, users can specify an outer
join in a join condition. If your DBMS or middleware doesn’t support
outer joins, users can perform an outer join within BI/Query by
joining results sets. (See “Joining One Column to Another” on
page 386.) They can also create a super query that submits multiple
queries and performs the outer join automatically. The result is a query
that retrieves the same results as if the underlying database supported
the outer join. (See “Saving Standard Queries” on page 307.)
4 Click OK.
Czeckov Sales
O’Brian Sales
Smythe Sales
Soonie Sales
Trussault Sales
Users may also need to find out information about employees who
manage a particular department. In this case, you can copy the
Employee data object and create a second relationship with the
Department data object that allows users to retrieve that information.
Data objects must have unique names in order for BI/Query to
correctly execute queries that specify them, so you need to change the
name of the copy — for example, to Manager — to reflect the new
relationship with the Department data object. By including Manager
and Department in a query, users can retrieve a list of the names of
employees and the departments they manage.
Czeckov Sales
If you want users to be able to use both objects in a single query, you
need to specify one or more correlation names. (See “Specifying
Correlation Names” on page 109.) By including the Employee,
Department, and Manager data objects in a query, users can retrieve the
names of managers and the departments and employees they manage.
Bradley
Smythe
Soonie
Trussault
3 Click OK.
Before merging, the design window After merging Retailer Phones into
contains the related data objects Retailers, Retailer Phones is removed
Retailers and Retailer Phones. from the design window, and its
attributes are added to Retailers.
You can merge data objects only when there’s a relationship between
them and the relationship has a join condition assigned to it. (You can’t
merge actual relationships.) The join condition remains associated with
the object that’s been merged and is applied when a user builds a query
that uses an attribute from the object. For example, in the data model
shown above, after Retailer Phones is merged into Retailers, the join
condition remains associated with Retailer Phones and is applied when
a user selects an attribute from Retailers that was in Retailer Phones.
Using BI/Query One of the data objects Retailer names, addresses, and phone
to update tables in isn’t used very often or numbers might be contained in three
the database also doesn’t contain many separate data objects, each containing a
plays a role in attributes. few attributes. Merging Retailer Phones
determining which objects to
and Retailer Addresses into Retailers
merge. If some tables are often
updated, they shouldn’t be
creates an object that is small enough for
merged. users to work with.
4 Click OK.
5 If a warning appears, click Yes to continue merging and delete the
connections to other objects.
OR
Click No to cancel the merge.
5 Click OK.
Once you’ve created the tables you want, make sure that users have the
appropriate database permissions to use them.
Users can create their own tables in the database if they’ve been granted
the appropriate database permissions and have the Edit Data Model,
Save Data Model, and Submit to Table permissions. Having the Submit
to Named Table permission also allows users to name the new table and
the corresponding data object. (See “Creating New Tables” on
page 150.)
Once you’ve created the data objects and attributes you want, check
the data model design and fix any problems before creating the
corresponding tables in the database. (See “Checking the Design” on
page 124.) You can create the tables directly in the database or create a
script containing SQL-creation commands, then send the script to the
DBMS, where the commands are executed and the new tables created.
If you create a script, you can modify it to include additional SQL
commands that you want to be executed when the tables are created.
10 Click Insert.
4 Type the creator (or collection or database) that created the tables
into the Creator text box.
5 Click OK.
7 Click Create.
8 When the table is created, click Done.
For the Retailers data object with the Retailer # and Name attributes,
the SQL statement that BI/Query generates to create the table in the
database might look like this:
Using any text editor, you can modify the script to include additional
SQL syntax. For example, you can specify a segment (Sybase),
tablespace (Oracle), location (Ingres), or database (DB2) that’s different
Similarly, you can include a prefix for the table name. Some databases
require this information to identify the owner or creator name (Oracle)
or database name (Teradata). If you add mydatabase. as the prefix for the
table, for example, the SQL statement becomes:
9 Click Open.
To assign permissions
1 Choose Edit>Permissions.
2 In the Permissions dialog box, assign the permissions you want.
for sites where users aren’t allowed to make changes. (You can, of
course, prevent users from changing the data model by not assigning
related permissions.) (For more information on data model types, see
“Types of Data Models” on page 24.)
You can begin by creating a combined data model, then split it later.
Similarly, you can change a split data model to a combined data model
Controlling What Users Can See 131 Performing Special Operations 148
Within the Data Model 131 Connecting to the DBMS 148
Securing Access to Tables 132 Saving Passwords in Connection Files 148
Securing Access to Columns in a Table 132 Connecting While Submitting Queries 149
Securing Access to Rows in a Column 133 Making Changes to the Database 149
Securing Access to Data Values 135 Updating Data 149
Using the BI/Broker Repository 137 Creating New Tables 150
Users and Groups 137
Understanding Inheritance 138
Controlling Access Item by Item 139
Controlling Access by User and Group 141
Controlling What Users Can Do 142
Assigning System Permissions 142
Assigning BI/Query Permissions 142
Setting BI/Query Preferences 144
Making Changes to a Data Model 145
Modifying Queries 145
Managing the Network Load 146
Performing Calculations with Queries 146
Scheduling Queries 146
Saving Queries 147
Creating Relationships between Data Objects 147
Controlling User Access
The administrator faces the challenge of making business-critical
information readily available to users without compromising database
security, integrity, and performance. BI/Query provides the tools the
administrator needs to tailor the data access environment to the exact
needs of the user community and, where those needs require advanced
data access, their computer skills. The administrator controls what
information users access and which activities they carry out.
You can include a table in a data model for which some users have
access at the database level and others don’t. If a user doesn’t have
access and attempts to include the table in a query, the database
disallows it.
You can provide Before creating a data model, you need to determine what tables users
additional tables need to access and which ones they’re allowed (or not allowed) to see.
by loading them
Depending on the number of user groups and their specific information
from the database.
You can prevent users from needs, you may need to create more than one data model. When
accessing tables by removing different users or user groups share certain tables in the database, you
the corresponding data objects can start by loading them (see “Loading Tables from the Database” on
or actual relationships from
the data model; in Design
page 96), then add or remove tables as needed.
Mode, click an object, then
choose Edit>Cut.
Securing Access to Columns in a Table
Display only the Certain information in a table may be useful to some users and not
attributes users others. You can prevent users from seeing columns they don’t need by
need so they don’t
hiding the corresponding attributes in BI/Query. You hide attributes
have to spend time
searching for them. Hide sys- by turning off the corresponding Visible toggle in the attribute window
tem-generated primary and in Design Mode. Attributes are hidden in BI/Query User and
foreign keys. BI/Query Update but remain visible in BI/Query Admin in Design
Mode and are moved to the bottom of the list.
You can also remove attributes from a data model, but hiding them
makes the data model easier to maintain. For example, BI/Query
allows you to refresh the data model to reflect changes such as additions
and deletions of attributes in the database. If you remove an attribute
from a data model and subsequently refresh the model, BI/Query sees
that the attribute you removed from the data model exists in the
database and prompts you to add it. By hiding an attribute instead of
deleting it, you can avoid having BI/Query indicate that the attribute
Qualifying tables isn’t just a way of preventing users from seeing certain
information. For tables that contain a large number of rows, it’s also a
way of improving query performance and protecting users from
submitting queries that retrieve more data than they need. For example,
regional sales managers may need sales information only for countries in
their region. If access was unrestricted, their queries would retrieve data
for all countries.
Any object qualifiers you create are combined with users’ qualifications
when they formulate queries, so be sure to test object qualifiers before
distributing them with the data model. Users can’t modify the object
qualifiers you create unless you assign the Edit Query permission.
4 In the Edit Table Qualifier dialog box, in the Qualifier ID text box,
type a name that will identify the qualifier when you’re assigning
access to the data model.
8 To include a prompt or variable in the qualifier, type it or click Insert You can include
Prompt or Insert Variable, then use the Prompts or Variables dialog more than one
box to select it. prompt, or more
than one variable,
by separating them with the
plus sign (+).
The Retailers data object is qualified with a prompt. When users submit a query
using this table, they’re prompted to specify one or more countries to restrict the
results to retailers in those countries.
9 Click OK.
When users qualify an attribute, they can select from a list of data values
stored in the database. By default, BI/Query queries the database for all
the values for the attribute and displays the list in the Data Values dialog
box. However, you can disable access to the default query. Disabling
access is recommended when loading all the values in the database uses
unnecessary network resources — for example, when an attribute has a
large number of values or when the values are just numbers and dates.
Even if you disable access to the default query, you and your users can
provide access to a subset of values by creating data values files. For
example, rather than displaying a list of all the countries in the database
(in Europe, North America, Asia, and so on), users may simply need a
list of countries in Europe. (See “Using Data Values, Prompts, and
Variables” on page 257.)
Access to data values is denied for Product # and allowed for Product Name and
Product Category.
For example, you want to give the sales department access to your
organization’s sales information but not its accounting information.
Likewise, the accounting department is to have access to accounting
information, but not be inundated with sales information. You build
one data model containing two data objects, one for sales information
and one for accounting information. You don’t restrict either data
object in any way.
When you’re ready to publish the data model to the repository (see
“Using the BI/Broker Repository” on page 215), you set security for
the sales department, granting access to the sales information data
object, denying access to the accounting information data object. Next,
you set security for the accounting department on the same data model
by granting access to the accounting information data object and
denying access to the sales information data object. Perhaps you’ll set
security as well for top administrators, by granting access to both data
objects. The same data model can be secured in as many different ways
as there are users and groups that need to access it.
Understanding Inheritance
To set security, you work your way down through the hierarchy of
users and groups. At the top level, you determine for each group
whether its members are to be granted or denied access to the model.
When you set security for a group, members of that group (users or
other groups) inherit the setting unless you decide to make an
exception. The Everyone group, however, can’t be set to inherit; it
must be explicitly granted or denied.
For example, you publish a Sales Model and grant the Sales Team
access to it. A green light in front of a the Sales Team group indicates
that you’ve specifically granted access for that group. Green check
marks indicate that all members of the Sales Team group have inherited
that access.
You can override inherited security settings for any user or group by
setting security specifically for that user or group. For example, it turns
out that Focus Group 3, which is a member of the Sales Team, should
not have access to the Sales Model. You can set its security individually
and deny the group access to the report. A red stop sign indicates that
you’ve specifically denied access to Focus Group 3. A red “x” indicates
that Rabindrinath O’Grady and Rene Sanchez have inherited the
denied access.
For example, although members of the Sales Team group inherit access
to the Sales Report, you specifically denied that access to members of
Focus Group 3. If Rabindrinath is a member of the Sales Team group You’ll know that
as well as of Focus Group 3, the conflict is resolved so that he’s granted you have permis-
sion to secure data
access by inheritance from the Sales Team group. models that you
publish to the repository if Set
Security is available on your
Controlling Access Item by Item Edit menu.
You can set access on a model by model, or model part by model part
basis, selecting a specific item to secure and then specifying which
groups and users are granted or denied access to it.
Access to the Model1.gql data model has been granted to the Focus Group. Both
members of the group have access, Pierre Sanchez by inheritance, Rabindrinath
O’Grady by specific grant.
At the data model 3 In the Users and Groups list, select each user and/or group for
level, the Every- which you want to control access, then click Grant, Deny, or
one list is denied Inherit.
access by default.
You can specifically grant or
4 Repeat step 3 until you have set the access for all the users and
deny access to the Everyone groups you want.
list, but you can’t set the 5 Click OK.
Everyone list to inherit.
6 Choose File>Publish to publish the model, with your security
settings, to the server.
3 From the list of users and groups, select those for which you want
to control access.
4 From the list of items, select a data model or part of a data model,
then click Grant, Deny, or Inherit.
5 Repeat step 3 until you have set the access for all items you want.
6 Click OK.
7 Choose File>Publish to publish the model, with your security
settings, to the server.
To assign permissions
1 Choose Edit>Permissions.
2 In the Permissions dialog box, assign the permissions you want.
To set preferences
1 Choose Edit>Preferences.
2 In the Preferences dialog box, set the preferences you want.
3 Click OK.
A combined data model, which consists of one file, is designed for sites
that don’t allow users to make changes to a data model. With the
permissions mentioned above, users can make changes to a combined
data model. However, assigning those permissions is generally not
recommended: when you distribute a new version of the data model,
the changes you’ve made may overwrite users’ customizations.
Modifying Queries
Advanced users who understand SQL and the database can modify the
SQL string generated when they formulate a query. To do so, you need
to set the Show SQL String preference to display the SQL in the Query
window, then assign the Edit Queries permission to allow users to
modify the SQL. Users can then modify anything after the SELECT
statement. This permission doesn’t compromise any restrictions placed
on users by the DBMS.
Scheduling Queries
If the data access environment includes Hummingbird’s BI/Broker,
users and administrators with access to the BI/Broker Repository and
who have the appropriate system permissions can schedule and manage
queries.
Saving Queries
When you assign the Save Queries permission, users can save queries in
order to reuse them in BI/Query or in other applications. This
permission isn’t necessary for data models that provide only canned
queries and reports instead of ad hoc querying capability.
For example, to satisfy the needs of most users, you might provide a
relationship between the Retailers and Sales data objects, specifying an
equal join that allows users to retrieve information about only those
retailers who have placed sales. You can then add flexibility for
advanced users by allowing them to create their own join conditions —
for example, to specify an outer join that retrieves retailers even when
they haven’t placed an order.
With the help of Technical Support, you can create a dynamic link
library (DLL) file called gqlcheck.dll. If the Custom Checks permission is
assigned, BI/Query calls a routine in the resource file before submitting
any SQL string to the DBMS. This routine accepts the SQL string that
BI/Query is about to send and returns a potentially modified string,
which BI/Query submits in its place. This feature can be used to check
security, optimize performance, and so on.
Updating Data
BI/Query Admin and BI/Query Update include a facility for adding,
modifying, and deleting data in the corporate database. This facility is
primarily designed for users who are responsible for maintaining
database tables. (See “Applying Updates to the Database” on page 400.)
It can be useful to allow users to create their own tables for a number of
reasons. If they’re extracting information from a number of tables, their
queries take time because they use multiple joins. Summarizing the
information in one table eliminates the joins and reduces the number of
rows that the DBMS has to process. This gives users faster access to the
information and reduces the load on the database server. For example,
instead of querying the Retailers and Sales tables each time they need to
retrieve information about a retailer’s monthly sales, users can query a
table that contains retailer sales summarized by month. This works
particularly well when users need to analyze information that isn’t
changing regularly. For example, by creating a table that summarizes
sales for a particular year, users can query the table and perform
calculations on the results without the values changing and becoming
out of date.
Users can also name the new table and the corresponding data object
when you assign the Submit to Named Table permission. This is useful
when users send query results to a new table in the database using
buttons; each time they click the button, BI/Query drops and re-
creates the table with the current results. When this permission isn’t
assigned, BI/Query creates a unique table each time. The database
administrator must grant users permissions to create and drop tables.
(Keep in mind that this permission allows users to drop the named
table. And because they can enter arbitrary table names, it gives them
the facility to drop any table from the database.)
Fine-tuning
You may be able to further enhance BI/Query’s connection When you test
performance by fine-tuning row buffering. The optimum settings row-buffering set-
tings, start by
depend on a number of factors, which you can determine using a series using fairly large
of tests and adjustments. values — for example, Row
Buffering = 10, then Row
To fine-tune row buffering Buffering = 150. Work
towards the middle to
1 Run a typical query and note the time it takes to run. “bracket” the optimum value.
2 Change both row-buffering settings to a new value, run the query
again, then note the difference in performance.
3 Repeat until you find the optimum performance.
4 To save the row-buffering settings, save the data model.
When users qualify an attribute, they can select from a list of data values
stored in the database. By default, BI/Query queries the database for all
the values for the attribute and displays the list in the Data Values dialog
box. However, you can disable access to the default query. Disabling
access is recommended when loading all the values in the database uses
unnecessary network resources — for example, when an attribute has a
large number of values or when those values are simply numbers and
dates. (For details on disabling access to data values, see “Securing
Access to Data Values” on page 135.)
You and your users can make qualifying a query more efficient by
using data values files. Data values query files retrieve a subset of values
for an attribute from the database. Data values results files display a
stored set of values; they further reduce the load on the database server
because they eliminate the need to query the database each time users
need a list of values. (For information on creating data values files, see
“Data Values Files” on page 257.)
For example, you can qualify the Customer data object with the value
Canada on the Country attribute so that any query that includes that
data object retrieves only information about customers in Canada.
Alternatively, you can qualify a data object with a prompt that forces
users to qualify any query that includes the data object — for example,
specifying one or more countries. (For information on both these
facilities, see “Securing Access to Rows in a Column” on page 133.)
Users formulate a query, send the results to a new table in the database,
then use the table to formulate additional queries. (For instructions on
creating tables, see “Creating Tables in the Database” on page 114.)
This facility helps you plan the queries you provide to users, and it
helps users determine whether or not to issue a query. For example, by
determining how a query will use the database, you can restructure a
query to perform the same function more efficiently. This feature can’t
be applied to super queries.
SELECT
(*)
FROM
large_num_rows, small_num_rows,
smaller_num_rows,smallest_num_rows;
In order to achieve the best results, you need to know how the database
is being used and how many rows of results any table can return. For
example, a table returns fewer rows when it’s joined to another table.
(You may need to consult the documentation for your DBMS.)
When a user formulates a query using data objects that have been
ranked, BI/Query uses the ranking order to arrange the FROM clause
for optimal performance.
7 Click OK.
Scheduling Queries
If your data access environment includes Hummingbird’s BI/Broker, With the appro-
and you have appropriate system permissions, you can monitor and priate system per-
missions, you can
manage the load on the database server by scheduling queries. System also schedule
permissions for scheduling are assigned by the BI/Broker administrator. reports. (For more informa-
For information on these permissions, see “Assigning System tion, see the BI/Query
Reports user documentation.)
Permissions” on page 89 in the BI/Broker administrator’s guide.
Managing Jobs
If you have the appropriate system permissions, from the Scheduled
Jobs window you can intervene in the way jobs run. You can cancel
jobs, reset them to start again after they’re done or after they’ve been
cancelled, pause them and then allow them to resume, and delete them.
To manage jobs
1 In the Scheduled Jobs window, select one or more jobs.
2 To cancel a job, click Cancel, then click Yes to confirm.
3 To start a job again after it’s finished or has been cancelled, click
Reset Job.
4 To temporarily keep a job from running, click Pause; to allow a job
that has been paused to continue running, click Resume.
5 To delete a job, click Delete, then click Yes to confirm the
deletion. (You can’t undo a deletion.)
Basic Principles
Design elements are components that you build into your data model Always balance the
layout to make it more attractive and help communicate information. use of innovative
typefaces, graphics,
Examples include graphics, color, and white space. A few basic and colors in a data
principles ensure an effective design. model with legibility. Your first
consideration should be the
information you want to con-
vey to your users.
Decide What’s Appropriate
When you design a data model, you need to choose design elements
and an arrangement that work best for your organization or a particular
user group. That means designing a data model that’s suitable for the
audience and content — setting the right tone and incorporating
graphics that support or enhance the type of information they
represent. A data model for a bank, for example, may have a different
tone and appearance than one for a bicycle company.
The corporate logo dominates the The corporate logo provides corporate
design window. identity without distracting the user.
Be Consistent
Consistency enhances clarity, readability, and reliability because it
reinforces users’ expectations. The more consistent you are in your
treatment of design elements, the easier it is for users to find what they
need and understand what to do. When you create more than one
heading in a data model, for example, use the same typeface and size for
Design windows should use the same or similar design treatments — mastheads,
graphics, fonts, and so on — to provide consistency and reinforce users’ expectations.
Use Restraint
While a wide range of typefaces, graphics, and colors are available to
you, keep in mind that design elements gain impact when you use
them selectively and lose impact when they’re overused. A good
general rule is “less is more.” In a well-designed data model, the design
is invisible — users can focus on the information they need and not on
the design elements used.
Keep the design simple and uncluttered. Avoid putting too many data
objects in a design window and creating so many relationships between
them that it’s impossible to understand what information relates to
what. Consider dividing data objects over multiple design windows.
Use Contrast
Contrast adds “color” to a data model. It gives elements extra impact
and keeps users interested. You can create contrast by adding color
selectively and varying the size and shape of objects.
Without contrast, the elements in a Varying the color, size, and shape of
design window blend together. objects provides visual contrast.
Provide Unity
Users need a focal point in a design window — something that
determines how they scan the window and communicates the relative
importance of elements in the window. You can achieve this by
organizing each design window around one dominant visual element
— a heading, the data objects and relationships in a data model, or a
group of buttons.
Establishing a Layout
The layout or organization of your data model provides a structure for The user’s natural
tendency is to read
data objects, buttons, and ornaments and gives users direction for
from upper left to
digesting the information. Different tools can help you organize design lower right. Orga-
elements so that users can find the information they need quickly and nize design elements to accom-
easily. If you provide more than one design window, present a modate this tendency.
consistent layout in each one.
Layout Grid
When objects are lined up, they’re easier to understand. BI/Query
provides a layout grid that helps you organize and align objects in design
windows and create a consistent layout from one window to the next.
The grid is a useful tool for placing data objects, relationships,
connecting lines, buttons, and ornaments. BI/Query displays the grid
by default. It appears on the screen as a series of horizontal and vertical
dotted lines. (The grid doesn’t print.) To specify grid settings, choose
Layout>Grid Settings.
To align objects on the grid, you can move them manually or use the
tools on the Layout palette. You can change the spacing between grid
points, and you can place objects anywhere on the grid or have
BI/Query automatically place them on the closest point. You can
Use the layout grid to align objects in a Turn the grid off before distributing the data
design window. model.
A masthead can include both a company A company name with a rule under it can
name and logo in a box. serve as a masthead; the logo can appear
elsewhere in the design window.
Lines organize and separate information. Horizontal and vertical lines contrast how
information is organized.
Adding Emphasis
In order to make a data model easy to use, you need to distinguish
important elements from less important ones. For example, the buttons
users use to access information shouldn’t be overpowered by
supporting graphics. There are a number of design elements that allow
you to strengthen a data model by adding emphasis where you need it.
Type
Type refers to size, shape, and spacing of letters. You can specify type Avoid typefaces
that draw attention
for text buttons and ornaments. The type available to you depends on to themselves. A
what fonts, or typefaces, you have installed on your computer. typeface shouldn’t
distract the user from the
Type is divided into two categories. Serif type has “feet” attached to the information you’re trying to
ends of letters that guide the eye from letter to letter. This type is often communicate.
used in body text (paragraph text) to assist readability. Sans serif type has
no “feet” — it has a clean, crisp, straightforward look and is often used
Times Roman (serif) and Helvetica (sans serif) are common typefaces.
In BI/Query, sans serif typefaces work well for buttons and ornaments;
you might use a serif typeface if you’re including a block of text. The
key is to use only one or two typefaces and to use them consistently.
Typeface (the style and shape of type) influences tone and adds
expressiveness:
Use italics or script The Bembo typeface is formal. While Tekton is casual.
typefaces sparingly
— they can be dif- Style and weight (normal, bold, italics, bold italics) influence the
ficult to read on
appearance and tone of type by adding contrast and emphasis. Size of
screen. The same goes for
reverse type (white type on a type is also a factor. Use large type to emphasize important information
dark background). Use it only and small type for less important information. But don’t use large type
at large font sizes. in a small area where it’s hard to read and looks cramped. Similarly,
don’t use small type in a lot of white space, or it will appear lost.
White Space
Avoid white space White space is any blank space, whatever the background color. It allows
in the middle of a more background to appear, making whatever it surrounds stand out.
design window. It
White space focuses attention and enhances readability. It opens up, or
creates a “hole,”
which gives an unfinished “lightens,” a design window and avoids visual monotony. Without
look. white space, you end up with a “run-on” effect that makes it difficult
to distinguish elements in a design window. And if spacing is uneven, it
can jar the eye and convey poor organization and a careless design.
(However, you may occasionally want to introduce uneven spacing to
create contrast.)
Boxes
Boxes draw attention to elements that are otherwise lost in their
surroundings. They also organize elements. For example, you can
create a box around a set of buttons or data objects to group them
together and set them apart. You can also add gray shading or a color to
a box for more impact or to create a particular effect. Using BI/Query’s
drawing toolbar, you can create boxes in a variety of shapes and sizes.
A rectangle with buttons at the top of a Shaded boxes help visually organize groups
design window creates the leading-edge of data objects that provide related
look of a toolbar. information.
Color
Color draws attention to design elements and helps you organize and
emphasize information. For example, applying one color to a group of
buttons or data objects allows users to perceive them as a group. Color
also evokes an emotional response and sets a tone. Bright colors
indicate excitement, while subdued colors indicate dignity.
You can apply color to windows and objects in BI/Query. For the best
results, decide what you want to achieve, then choose a main color (for
the background of a design window, for example) and complementary
colors (for individual objects). Complementary colors are color
combinations such as red-orange or blue-green that visually enhance
one another. Apply a contrasting color to achieve a focal point in your
data model or to accent smaller areas of emphasis.
Providing Metadata
Metadata is data about data. It labels, summarizes, and suggests the
Metadata at a Glance
questions that can be answered by the data in the corporate database. It
Providing metadata in a
does so in familiar terminology rather than database terminology. Like
data model involves three
other data, metadata is stored in the database in tables. It can provide basic steps:
information about the database as a whole, about a particular table, or
• Create tables in the
about a column in a table. database and populate
them with metadata.
You can provide metadata for the data objects and attributes in a data
• Edit BI/Query’s query
model. For data objects, metadata replaces database table names with
templates to specify the
display names; for attributes, it replaces database column names with metadata source.
business terms. And it provides short descriptions for both that explain • Load the metadata into
what kind of information they represent. Including metadata in a data the data model.
model gives users a clearer understanding of their data and helps them
To provide metadata, you start by making sure that your database stores
metadata (contains a metadata source). (If it doesn’t, you can use
BI/Query to create it.) You then set up the necessary queries to specify
the metadata source. Loading the metadata into the data model submits
the queries to the metadata source and retrieves the metadata.
To help you set up the queries you need to specify the metadata source,
you can use one of a number of editable template queries. In addition
to BI/Query’s own, you can use template queries for metadata supplied
by IBM’s DataGuide, Informatica’s PowerMart Mx, and Prism’s
Directory Manager (using the Prism MetaLink option).
When the metadata is loaded, the display names replace the data object
names, and the short descriptions are available as tool tips.
When display names and short descriptions each occupy only one row in
the metadata table, the SQL for a query should contain the following.
(As an example, see the template queries that are displayed when you
select Other from the Vendor list in the Metadata Source dialog box.)
When you load metadata (see “Loading Metadata” on page 188), the
<<table_name>> table variable is replaced successively with the
database names of the tables in the data model for which there is
metadata (retailers, sales, salespeople, and offices). The query associates
the corresponding display name and short description with each table.
Be sure to create a query only for the type of metadata you want. For
example, if you want metadata only for columns, create a query only in
the Columns Query text box and delete the query in the Tables Query
text box.
IBM DataGuide queries always target a DB2 database, and DB2 always
requires a creator name. For that reason, BI/Query supplies a default
creator name in the appropriate places in those queries. You need to
change that name to reflect the actual creator name you’re using. If
you’re editing a Prism or PowerMart Mx query that targets a database
requiring a creator or database name, you must manually insert that
name into the FROM and WHERE clauses.
To use a template query when you didn’t use BI/Query to create the
tables
1 Choose Edit>Metadata Source.
The text of metadata queries is case-sensitive and must match the attributes stored
in the metadata table.
3 Edit the queries in the Columns Query and Tables Query text
boxes.
OR
Type your own queries.
4 To submit the query to a DB2, Oracle, or Teradata database
requiring an Owner or Creator name, add the name in front of
columnmeta in both the FROM and the WHERE clauses.
5 To insert the table variable into the SQL string, click Insert Table
Variable.
6 If the Creator name must be included as part of the substitution for
the table variable when you load metadata or refresh data objects,
click Use Creator Name in Table Variable.
7 Click OK.
Loading Metadata
Once you’ve specified the metadata source for a data model, you can
load the metadata in a number of ways. Loading metadata associates the
Users can see the descriptions you provide by clicking the question
mark beside an attribute in the attribute window. When you type a
description in BI/Query, the description is automatically displayed in
the Attribute dialog box. When you create a query or a results file that
provides a description for the attribute, the Load Comment button is
enabled. When users click the button, BI/Query runs the query or
loads the contents of the results file and displays the description.
In a split data model, attribute descriptions you create are stored in the
administrator layer. Any attribute descriptions users create are saved with
their user layer and take precedence over descriptions stored in the
administrator layer. (Typically, users won’t create attribute descriptions
from query or results files, but they can type them directly in BI/Query.)
Directly in BI/Query
When attribute descriptions aren’t available in a table, the simplest way
to create them is directly in BI/Query. When users click the question
mark for an attribute in an attribute window, the description is displayed.
From a Query
If your database stores a table containing attribute descriptions, you can
create a generic query that queries that table for the appropriate
BI/Query uses the data object you create or load to query the
descriptions table. Users can also use the data object itself to retrieve
attribute descriptions. You can prevent them from doing so if the table
is large and you want to avoid tying up the database server — such as if
a user attempts to retrieve all of the descriptions in one query. You can
prevent users from using the data object by hiding all of the attributes.
(In Design Mode, turn off the Visible toggle for each attribute.)
If you won’t need to change the attribute and table names in the table
or in BI/Query later, you can assign key fields to those attributes. (Both
must be key fields if more than one table has attributes with the same
name; that allows queries to distinguish between the attributes.) If
you’ll need to make changes to attribute and table names using
BI/Query, create another attribute to serve as your key field. Its sole
purpose is to allow you to populate and update the table. (See also
“Creating Tables in the Database” on page 114.)
The attribute window for this Descriptions data object shows suggested names for
the three attributes and their order.
2 Assign one or more key fields. (See “Setting Key Fields” on page 393.)
3 Connect to the DBMS, then choose Host>Create DB Tables.
4 In the Create DB Tables dialog box, select the new data object in
the Data Model list.
8 Click Save.
Creating Ornaments
If you’ve placed Ornaments are text and graphic objects such as titles, logos, borders, and
an item on the notes that provide additional information, act as visual organizers, or
Clipboard, choose
Edit>Paste to
simply enhance the appearance of design windows.
paste it into a design window.
The resulting ornament
If the Edit Data Model and Save Data Model permissions have been
behaves in the same way as assigned, you can create ornaments in design windows and save them
those you create in BI/Query. with the data model. In a split data model, the ornaments that users
create are stored in the user layer; the ornaments the administrator
creates are stored in the administrator layer. Users can’t edit or delete
ornaments created by the administrator.
Ornaments can display text, icons, and pictures. You can create your
own text and use graphics stored in files. You can also use text and
graphics created in other applications by copying them from the
Clipboard. (This allows you to use graphics in formats BI/Query
doesn’t normally support.) Using the drawing toolbar, you can create
ornaments that display lines and shapes, such as circles and squares.
Icons are graphics with a specific dimension (32 pixels by 32 pixels). BMP format is a
Icon files usually have the extension .ico. If you’re using a monochrome good choice for
creating graphics
icon, you can assign a color to it. Pictures are stored in BMP, GIF, or
files for use in
WMF format. Graphics imported from the Clipboard are metafiles (the BI/Query. BMP format stores
most common format for graphics used by applications like Corel graphics with the lowest reso-
DRAW) or bitmaps (created in a paint program). lution and is available using
any paint program. Keep in
You can also use Windows’ Object Linking and Embedding (OLE) to mind, however, that graphics
can add substantially to the
create ornaments. (For more information about creating linked and size of a data model.
embedded objects, see “Using OLE” on page 426.)
To create an ornament
1 Make sure you have the Edit Data Model and Save Data Model
permissions.
2 In Design Mode, choose Layout>Create Ornament.
3 In the Create Ornament dialog box, type a name into the Name
text box that will identify the ornament when you’re assigning
access to the data model.
4 Click OK.
Specifying Colors
You can specify the color of windows and objects in a data model to
make them more attractive and to provide visual organization. For
example, using color draws users’ attention to important elements of
the data model.
You can specify default colors for the text and background for all
windows in the data model, for the text, borders, and background of
buttons and ornament, and for the borders and background of data
objects and relationships. For data objects that display icons, you can
specify the border but not the background color. When you save the
data model, the colors are saved with it. If you specify a composite
color (made up of dots of different colors) and your monitor doesn’t
support 256 colors, BI/Query may select the closest solid color match.
4 Click OK.
5 In the Preferences dialog box, click OK.
Unselected Selected
lines lines
4 Click OK.
5 To see the color, click off the object.
New Colors
The list you use to assign colors to windows and objects displays a basic
set of colors. If you don’t want to use these colors, you can create your
own. You can experiment with a broad range of additional colors
before choosing the one you want. BI/Query saves a color only if you
apply it to an object. If you create one or more colors that you’d like to
use in the future, take a note of the values in the boxes under the color
refiner so that you can readily re-create the color.
3 Click OK.
4 In the appropriate dialog box, click OK.
Adding Information
You can add information directly to an online Help topic as an
annotation. When you add an annotation, then close the annotation
window, a paper clip icon appears in the topic you annotated. Users
can view the annotation by clicking the paper clip. When you save the
data model, the annotation is saved with it.
4 Click Save.
5 Close the Help file.
Site-specific Help
You can also provide additional Help about your organization. When
users run BI/Query, it finds this Help file and adds the corresponding
command to the Help menu. Users can choose Help>Site Help to
display the online Help you’ve provided.
Once you’ve distributed the data model, users can retrieve it from the
repository, run it from their own computers, or run it from the file
server.
When you have more than one split data model, store each one in its
own folder with their corresponding administrator and user layers
stored in separate folders.
User Layer
When the user opens the data model file with BI/Query User or
BI/Query Update, he or she sees the core BI/Query application. Users
typically aren’t given permission to add their own customizations to a
combined data model because they’d be overwritten each time the
administrator distributed a new version of the data model.
If users have the appropriate permissions, they can publish their user
layers to the repository so that they, or other users, can retrieve them.
This gives them access to the same information whether they’re using a
computer in the office or a laptop at a trade show and makes it possible
for users to share their customizations.
• you have system permissions that allow you to publish data models,
and your users have system permissions that allow them to publish
their user layers
• you (and any users who’ll be publishing their user layers) have
permission in BI/Query to edit and save the data model
• the data model is saved with a default connection file
• the data model is saved with a name that users will recognize when
they retrieve it from the repository
7 Click Publish.
8 Test the data model to be sure that it’s been published. Close it,
retrieve it. (See “Retrieving a Published Data Model” on page 39.)
Using Diskettes
If you have a small number of workstations, it may be most practical to
distribute a data model using diskettes.
Using Mail
If you have hundreds of users with access to different file servers and
you want to save the work of distributing a data model to each server,
you can use mail instead. Depending on the number and size of files
you need to send, consider compressing or archiving them first to
reduce transmission time.
If you don’t have this additional functionality, you can store the
administrator layer of a split data model (or a combined data model),
including the Queries and DataVals folders, in the database. (If you
7 Click Save.
8 Distribute the resulting data model file.
The nnnn in the table names represent digits. All of the table names for a
data model use the same digits. Each table stores the model ID of the
model plus other pertinent information. The tables are illustrated below.
Attributes of the GQLMnnnn data object. The same attributes are contained in the
GQLQnnnn, GQLVnnnn, and GQLRnnnn data objects.
Before creating these tables, the data for the GQLDATA columns is
converted from binary format to ASCII format to be stored as a
varchar. The data in the other columns doesn’t need to be converted.
The columns in these tables are described below.
Attribute Description
GQLMTAB The name of the table that stores the data model.
GQLDVTAB The name of the table that stores the data values.
Each time you store a new version of the data model in the database, the
GQLVERS column in the GQLMETA2 table is updated with the new
version number. The GQLMnnnn table is dropped and replaced with
another table (with new digits). If the Queries, DataVals, and Reports
folders are also stored in the database, the old GQLQnnnn, GQLVnnnn,
and GQLRnnnn tables are dropped, and new tables are created.
Granting Permissions
To enable users to use a data model stored in the database, you must
ensure that they have read access to, or select permission on, the tables
BI/Query creates. If users are granted access on a table-by-table basis
rather than automatic access to all new tables, you’ll need to determine
the names of the new tables. You can do that by creating a new data
model, loading the GQLMETA2 table, then using the corresponding
data object to query the table and retrieve the table names. Once you
know the table names, you (or the database administrator) can grant
Option Purpose
New Version The data model version plus one. (It must be one
digit greater than the version stored in the database.)
BI/Query automatically increments this number; you
can also increment it yourself. This information is
saved with the data model and stored in the
GQLMETA2 table.
Some of the time, you’ll revise a split data model by making your own
changes. At other times, you may want to incorporate a user’s
customizations (buttons, ornaments, queries, and so on) to make them
available to other users. In that case, you can incorporate only those
customizations into the administrator-layer file.
Data Objects
Using BI/Query Admin, you can compare a data model to the current
structure of the database and refresh the data model to include the
following changes:
Displaying the changes in the database for the selected data object.
2 Select the change(s) you want to apply, then click Apply Changes.
Be sure to read each warning carefully because it may not apply to the
data object it’s listed under. For example, if both the Retailers and Sales
data objects contain the Credit Limit attribute and Credit Limit is used
in a computed attribute, BI/Query produces a warning for both data
objects even though it applies only to Retailers.
Queries
After a data model has been refreshed, some of the stored queries may
not work — for example, because they include attributes that no longer
exist in the database. When a user opens a data model, BI/Query
compares the dates on which the data model and the queries were last
refreshed. If the data model was refreshed more recently than the
queries, BI/Query prompts the user to refresh them.
BI/Query compares each query with the data model and identifies
where it uses attributes or data objects that no longer exist — for
example, in qualifications or join conditions. BI/Query detects only
when attributes, data objects, and join conditions have been deleted,
not when they’ve simply changed. (For example, it doesn’t detect
changes to data type.)
While only the administrator can refresh a data model, both the
administrator and users can refresh queries. Data values queries can’t be
refreshed.
To refresh queries
1 Choose Query>Refresh Queries.
2 In the Refresh Query dialog box, select the queries you want to
refresh.
A message box gives the differences between the query and the data model.
5 Rerun queries that have been refreshed to make sure they still
retrieve the results you want.
Rerun the queries you’ve modified to make sure they retrieve the same
results. Often they won’t — for example, when an attribute has been
deleted from a qualification or join condition.
If you use the attribute format rather than the default data-entry format
for numbers and dates, be careful when the format is one that “hides”
information. For example, if the format for a date attribute doesn’t
include the year, such as MMM/D, if you type Sept 15, 1998 into a
qualification, BI/Query converts it to Sep 15 but inserts Sept 15, 1998
into the SQL for the query. If you edit the value to be Sept 25,
BI/Query interprets it as the complete value (as Sep 25, not as Sept 25,
1998). The “hidden” year is lost, and the query may retrieve
unnecessary or incorrect data. If you use attribute formatting, it’s good
practice not to use “hidden” formats for attributes.
BI/Query hides the year when the attribute uses a “hidden” format.
Numbers
When you specify numbers (including currencies), simply type them.
BI/Query converts them to the format specified in your Control Panel.
Dates
You can type dates using the date format specified in your Control To ensure that
Panel or any comparable format. For example, if the default date format BI/Query inter-
is 1/14/1998, you can type dates in the format 1998.1.14, 1.14.1998, prets dates cor-
rectly, make sure
January 14, 1998, or even 1998 Jan 14. As long as you include the day, that you type dates using all
month, and year and BI/Query is able to unambiguously interpret the four digits of the year.
format, it converts the date to the default format.
You may need to change the display format for a particular set of
results. Whether you select a single cell or an entire column, the
formatting is applied to all the results in the column.
3 Click OK.
Formatting Numbers
You can select from a number of predefined formats for numeric data. When columns
You can also modify one of these formats by including, for example, a contain currency,
include the cur-
dollar sign or percent symbol as a prefix or suffix. You can also
rency symbol —
highlight negative values in red, hide zero values, and display in $, £, ¥, and so on. This saves
exponent notation. users doing it in reports they
create in BI/Query Reports.
To format numbers
1 In the Specify Display Format dialog box, click Numeric.
Formatting Dates
You can select from a number of predefined formats for dates, and you
can include the time.
To format dates
1 In the Specify Display Format dialog box, click Date.
Substituting Values
You can substitute values in a results column to highlight trends, focus
on general information rather than specific details, and flag exceptions.
For example, it may be useful to assign a single value (the word
Unsatisfactory) to a range of values (all sales below a certain amount) so
that you can easily identify areas that require further attention. You can
also apply a color for emphasis in any corresponding reports. (The color
is displayed only in standard reports, not reports created using
BI/Query Reports.)
If you change the To enable BI/Query to convert two-digit years, you need to specify
date window after the range of dates in your data, then establish whether dates are sliding
typing two-digit
or fixed. The start and end years of sliding dates are incremented by one
years, the new
date window doesn’t apply to each time the current year changes. The start and end years of fixed
the dates you’ve already dates don’t change.
entered.
The type of date you specify applies to all Hummingbird BI products,
so what you specify in one product affects all other products you use.
You use the Date Entry dialog box to specify a start year for your data.
BI/Query automatically calculates an end year that’s 99 years after the
start year. When you type two-digit years in BI/Query, it adds a
century prefix so that the years fall on or between the start year and the
end year displayed. For example, let’s say the start year is 1918, and the
end year is 2017. BI/Query adds the prefix 19 to all two-digit years
greater than or equal to 18; it adds the prefix 20 to all two-digit years
less than or equal to 17. When you type 45 in BI/Query, it’s converted
to 1945; when you type 15, it’s converted to 2015.
When the current year changes (for example, from 1998 to 1999) and
you’ve specified dates as sliding, the start year changes to 1919 and the
end year changes to 2018. (When you’ve specified dates as fixed, the
years remain the same — 1918 and 2017.)
For example, you can use data values files to retrieve specific data values.
These can be query files or results files. Depending on how they’re
named, you can use them to qualify an attribute when you build a
query or insert into a prompt when you submit a query to the database.
You can also use prompts, which request you to insert one or more
values into a qualification when you submit a query. You can combine
BI/Query’s data values and prompting facilities to insert values into one
prompt that are based on values you inserted into another.
When users select from a list of data values stored in the database,
BI/Query queries the database for all the values for the attribute.
However, the administrator can disable access to this default query.
This is recommended when loading all the values in the database uses
unnecessary network resources — for example, when an attribute has a
large number of values or when those values are simply numbers and
dates. (For more information, see “Securing Access to Data Values” on
page 135. For information on qualifying an attribute with data values,
see “Using Data Values” on page 296.)
Data values query and results files are stored in the DataVals folder. If
the administrator-layer and user-layer files of a split data model are
stored in separate folders, each layer has its own DataVals folder that
stores its own files.
The file names you give these files determine the order in which
BI/Query searches for the files in the DataVals folder as well as where
the corresponding data values are available. The following table shows
the order in which BI/Query uses data values files, their names, and
where they’re used.
If BI/Query doesn’t find a data values file, and if data values for an
attribute haven’t been disabled, BI/Query runs a default query that
retrieves all the unique values in the database for the attribute and
displays the results in a list.
Creating data val- If data values haven’t been disabled for an attribute, you can access all
ues results files is the data values in the database instead of just those in the data values
useful only when
results file. Select more from the data values list, then in the Data Values
the data changes
infrequently. If a file needs to dialog box, click Load All.
be updated often, create a data
values query file instead. (See You can create a data values results file from results you’ve retrieved in
“Creating Data Values Query BI/Query as well as by using a text editor or spreadsheet program.
Files” on page 264.)
This query returns a list of cities in the state of New York, sorted alphabetically.
When you type values into the text editor or spreadsheet program, type
them in the order and case you want them to appear in BI/Query,
pressing Enter after each value. For example:
DirectorEnterExecutiveEnterManagerEnter
It’s good practice to test the file; the icon displays the results in the
order you typed them.
7 Click OK.
8 In the results window, choose Results>Data Values Results.
9 In the Data Values dialog box, specify a name for the file. (See The name you
“Naming and Storing Data Values Files” on page 258.) give the data val-
ues results file
10 Click OK.
must be the same
11 In a text editor or spreadsheet program, type a list of values, pressing as the name you give the data
Enter after each one. values results file template.
12 Save the file using the same path and file name as the .qrd file you
created in BI/Query.
13 To test the file in BI/Query, click the attribute used to create the
original results, click its Qualify box, then click the data values icon
in the qualification tree.
Qualification tree
Qualification prompt
dialog box
To retrieve the results you want, you need to qualify the attribute that’s
linked to that data values query file. For example, if a data values query
returns data values for Title, apply the qualification to Title. Be sure to
eliminate duplicate values from your results. You can select just the
attribute to retrieve all of the values in the database, or you can qualify
it to retrieve only specific values.
To set up data aliasing, you create a data values results file or data values
query file that contains two columns; the data in the first column aliases
the data in the second. Only the data in the second column is displayed
in the list of data values. Instead of selecting a value for a qualification
that may be difficult to understand or remember, such as a staff person’s
ID, users can select a more meaningful value, such as the person’s last
name. While the user selects the name from a list of data values,
BI/Query inserts the corresponding ID into the SQL string.
When a user qualifies the ID# attribute, then clicks the data values icon
in the qualification tree, BI/Query either loads the data values results
file or submits the data values query and displays staff last names as a list.
ID for Peterson
4 Name the file after the first attribute (for example, Staff.ID #).
For tables that contain a large number of rows, prompts improve query
performance and prevent users from submitting queries that retrieve
more data than they need. For example, regional sales managers may
need sales information only for countries in their region. When they
submit queries against the table containing countries, the queries
prompt them to specify the countries they want.
You can submit queries using single prompts, group prompts, which
are made up of a number of individual prompts, and conditional
prompts, in which the data values returned for one prompt are based on
the value you specify for another.
The data values that you can insert into a prompt depend on whether
the corresponding data values file is named after the data object and
attribute used in the query or after the prompt. (See “Naming and
Storing Data Values Files” on page 258.)
5 Click OK.
Group Prompts
A group prompt is made up of two or more single prompts. All the
prompts have the same group name and are displayed together in one
or more dialog boxes depending on the number of prompts in the
group. For example, a group prompt can be made up of prompts for
the Country and City attributes so that a query that qualifies those
attributes prompts you to select first a country, then one or more cities.
When queries are qualified with more than one prompt, grouping
them in a dialog box allows users to see all the prompts at once and
reduces the number of steps in the query. It also relates one prompt to
another. (See “Conditional Prompts” on page 274.)
4 In the Prompt String text box, type a title for the prompt.
5 Click OK.
Conditional Prompts
Conditional prompts are group prompts in which the data values available
for one prompt are determined by the value specified for another. For
example, a prompt for cities provides only those cities that correspond
to the value you specify for the country prompt. You create a
When users select data values from a list instead of typing them into a
prompt, conditional prompts eliminate values they don’t need and
make it easier for users to find the values they do need. Conditional
prompts are also useful in an EIS interface because they provide a
means of drilling down to obtain increasingly detailed information. (See
“EIS Data Model” on page 85.)
This query retrieves a list of cities for the country specified for the Retailer!1Country
prompt.
5 Save the query as a data values query file using the name of the
second prompt in the group prompt. (See “Creating Data Values
Query Files” on page 264.)
The Country attribute is qualified by the Retailer!1Country prompt, and the City
attribute is qualified by the Retailer!2City prompt.
Clicking Data Values submits the data values query file (Retailer!2City) and displays
the results in the Data Values dialog box.
9 In the Data Values dialog box, select the value(s) you want.
(Depending on the operator you applied to the qualification, you
can select one or more values.)
10 Click Insert.
Importing Prompts
You can distribute prompts by copying and renaming your Prompts file
(located in the Queries folder); other users can then import the prompts
contained in this file. You can also import prompts stored in someone
else’s Prompts file.
To import prompts
1 Choose Edit>Prompts.
2 In the Prompts dialog box, click Import.
3 In the Select Import File dialog box, select the file that contains the
prompts you want to import, then click Open.
4 In the Import Prompts dialog box, select the prompts you want
under Prompts to Import, then click Import.
Variables
A variable (or automatic variable) performs a user-defined operation in a
query. That operation specifies the search conditions for the query and
can contain anything that’s valid in an SQL WHERE clause (attributes,
operators, values in the database, calculations, functions, subqueries, or
stored procedures). Variables take the work out of formulating
potentially complex queries.
You can include prompts and other variables within a variable. For
example, a variable can prompt you to specify a week and a year. When
you qualify a query with the variable, the results correspond to the
week and year you specified.
Variables are stored in the Prompts file in the Queries folder. If the
administrator-layer and user-layer files of a split data model are stored in
separate folders, each layer has its own Queries folder and its own
Prompts file. You can import variables stored in another user’s Prompts
file. (See “Importing Variables from a File” on page 286.)
Creating Variables
When you submit a query qualified with a variable, the variable is You can test that
executed as a complete expression; it replaces the entire qualification, an expression
returns the results
including the attribute and operator. As a result, the variables you
you want by cre-
create must contain information about what attribute to qualify and ating a calculated attribute
what operator to use. (An exception occurs when the variable is a that uses the same expression.
stored procedure that already contains attribute and operator Use the attribute in a query,
then verify the results. (For
information.) information on creating cal-
culated attributes, see “Creat-
You can create a variable that includes a specific attribute and operator. ing Attributes That Perform
You can then use the variable to qualify that attribute using that Calculations” on page 334.)
operator — even when you’re qualifying a different attribute in the
query. You can also create variables that qualify other attributes using
other operators.
This variable determines today’s date. You can use it to qualify a query for sales at
the end of a quarter rather than qualify the query with a specific date.
Using the EQUAL (=) operator in this variable ensures that the results are based on dates
within the current quarter, up to and including today’s date. If you specify a different
operator in the qualification tree, BI/Query ignores it.
You can also use placeholders instead of specific attributes and operators.
When you submit a query, BI/Query replaces the placeholders in the
variable expression with the attribute and operator you specified when
you qualified the query. For example, you can qualify a query with a
variable that includes the ^Attribute^ and ^Operator^ placeholders.
When you submit the query, ^Attribute^ is replaced with the current
attribute, and ^Operator^ replaces itself with the current operator. (The
current attribute and operator are those in the qualification tree).
Including Functions
Variables often include functions that perform some type of calculation.
Using the DBMS function for the current date, for example, a variable
can determine the date for the beginning of the month to allow you to
find all retailer sales received since that date.
A list of built-in SQL functions appears under Functions. For certain DBMS types, a
list of scalar functions appears under Other Functions.
3 Click Insert.
4 To include the value to which you want the function to be applied,
edit the expression.
Including Variables
You can use variables as building blocks for more complex variables.
^Attribute^^Operator^ <<Today>> - 1
The Today variable determines today’s date and allows you to create a variable that
determines yesterday’s date.
Including Prompts
When you need to qualify a variable but you don’t want to restrict it to
a specific value, you can include a prompt so that you can insert a value
each time the variable is used. (For more information on prompts, see
“Prompts” on page 181.)
This variable includes the weekofyear! group prompt, which prompts you to specify first
the week you want, then the year. The variable returns results based on the week and
year you specify.
4 In the Import Variables dialog box, select the variable(s) you want
under Variables to Import, then click Import>>.
5 Click Done.
The Basics
You build queries using the data objects and relationships in a design
window. You specify which attributes you want to retrieve, and you
qualify your query to restrict your results to specific information in the
database. (For information on qualifying queries, see “Qualifying
Queries” on page 293.)
While you can use more than one object in a design window to build a
query, you can’t build a query that uses data objects and actual
relationships in different windows.
You can build a query in one step. Or you can specify the initial
qualifications, submit the query, review the results, then revise the
query until you retrieve exactly the results you want.
Most of the time, you’ll qualify queries with one or more data values or
variables. You can also combine qualifications to avoid ambiguity and
restrict them with an operator. To qualify queries with attributes,
subqueries, and variables, or to reverse a qualification to retrieve the
opposite results, see “Building Advanced Queries” on page 315.
You don’t need to 2 In the attribute window, click the attributes that represent the
click the attribute information you want to retrieve.
you’re qualifying if
you don’t want to
include it in the results. For
example, if you qualify Coun-
try, you don’t need to click it
if you don’t want to retrieve
data for countries.
Qualifying Queries
When you formulate queries, you can qualify the query with one or
more values in order to retrieve results that correspond only to those
values. For example, if you’re interested in sales figures only for France,
you can build a query that qualifies the Country attribute with France.
Qualifying a query restricts results to the data that satisfies the
qualification.
Data values
icon
Attribute Operator Qualification List
list text box icon
Condition box
List icon
Add a new value to the list
Remove all values from the list
If data values for an attribute haven’t been disabled, clicking the data values icon
displays all the values for the attribute stored in the database.
If you or the administrator have set up a local data values results file for
an attribute, a list of data values is displayed instead of the Data Values
dialog box. (See “Creating Data Values Results Files” on page 260.)
If a local data values results file has been set up for an attribute, clicking the data values
icon displays a list of data values.
4 To view the values you’ve entered, click the list icon. (See “The
List Icon” on page 294.)
Using a Prompt
You can qualify an attribute with a prompt so that you’re prompted for
a value when you submit the query. Once you’ve built the query, you
can save it and use it again to retrieve the same results for a different
value. This is particularly useful if you’re creating your own EIS
interface and you want to associate the query with a button to allow
you to zero in on specific information. (See “EIS Data Model” on
page 85 and “Prompts” on page 269.)
8 Click OK.
Changing the qualification from and to or finds retailers in either France or Germany.
Combining Qualifications
When you’ve specified two or more qualifications in a query, you can
combine them so that they take precedence over those that aren’t
combined. For example, the qualification Country = France and
Country = Germany and Credit Limit < 60,000 is ambiguous; it’s
unclear whether its purpose is to produce a) retailers located in France
or Germany, all with a credit limit of under $60,000, or b) retailers
located in Germany with a credit limit of under $60,000 plus retailers
located in France. To avoid ambiguity, you can combine this query to
read: (Country = France or Country = Germany) and Credit Limit <
60,000; the results will consist of all retailers located in France or
Germany, all of whom have a credit limit of under $60,000.
Combining qualifications in this way is the equivalent of using brackets
in a mathematical expression — for example, 2 x (3-1) — to indicate
the part of the expression that should be calculated first.
To combine qualifications
1 In an attribute window, select the condition boxes above the
qualifications you want to combine.
Using the operator list in the qualification tree, you can apply other
operators to restrict a qualification. Keep in mind that the >, >=, <,
and <= operators allow you to insert a single value when you submit
the query; the BETWEEN and NOT BETWEEN operators require
two values (for an upper and lower range); the =, IN, NOT IN, and
<> operators allow you to insert one or more values.
Operator list
Making Comparisons
When you need to compare values to find, for example, those that are
larger or smaller, earlier or later in the alphabet, or equal to a value, you
can specify the value on which you want to base the comparison in the
qualification text box and apply the appropriate comparison operator.
While comparisons are typically applied to numbers, they can also be
applied to characters and dates. With characters and dates, < means
earlier in the alphabet or in chronological order; > means later.
You can specify the characters you want to match in the qualification
text box and apply the Begins with, Contains, or Ends with operator.
BI/Query automatically inserts the Like operator and the % symbol in
the appropriate position in the SQL string. (The % symbol is a wildcard
that can represent any number of characters. Its position in the
qualification indicates what part of the character string needn’t match
the qualification.)
When you submit the query, BI/Query looks for all instances of values
that match the qualification you specified. You can also type the %
symbol into the qualification text box to find a match for any string of
characters, regardless of where it falls.
You can apply these operators to character strings, not numbers or dates.
Zip/Postal code Does not All Zip and postal codes except those
end with 3011 ending with 3011.
3 Click OK.
This standard query retrieves information about retailer sales without manipulating the
results in any way.
Saving a query in To save standard queries, you must have the Save Queries permission.
a results window You can save a standard query to make it available in BI/Query, and
saves the query
that generated the you can save the corresponding SQL string to make it available to other
results. Saving in any other applications.
window saves the current
query. BI/Query saves queries with the extension .qry and stores them in the
Queries folder by default, but you can also store them elsewhere. Data
values queries are saved in the DataVals folder. (See “Creating Data
Values Query Files” on page 264.) If the administrator-layer and user-
layer files of a split data model are stored in separate folders, each file
has its own Queries and DataVals folders.
5 To save the query in a location other than the Queries folder, click
Export and specify the name and location of the file.
6 Click Save.
Saving Results
You can save query results to a file in order to use them again in
BI/Query or to use them in other applications, such as word processors
and spreadsheet programs.
BI/Query saves results as two separate files with the extensions .qrd and
.qrr. The .qrd file contains the results stored in text format so that other
applications can open them. (BI/Query automatically supplies the .qrd
extension when you save results.) The .qrr file stores additional
information that BI/Query needs to open the results file (such as
formats for each column and the SQL used to retrieve the results).
When you load results in BI/Query, you see only the .qrd file. If you
need to delete a results file, delete both the .qrd and .qrr files.
The results are stored on your computer so that you can manipulate
them locally instead of in the database, thereby reducing the demands
on the server.
3 Click Save.
Publishing Queries
You may want to make a query available to other users with similar
querying needs. If your corporate querying environment includes
Hummingbird’s BI/Broker and you have the appropriate system
permissions, the BI/Broker Repository provides an excellent way for
people throughout the organization to access your queries. You can
include queries when you publish and secure data models (see “Setting
Up to Publish” on page 216), and you can also publish and secure
queries individually. In addition to making your queries available to
other users, publishing your queries makes it possible to schedule them.
(See “Scheduling Queries” on page 357.)
Although you don’t have to save a query before you can publish it, the
data model on which the query is based must have been published. If it
To retrieve a query
Retrieve is avail- 1 Choose Query>Retrieve.
able from the
2 In the Retrieve Query dialog box, click a query, then click
Query menu only
when you’ve
Retrieve.
opened a data model for
which queries are stored in
the repository.
3 To both retrieve and submit the query, click a query, then click
Submit.
Using a Subquery
You can access your data in more dynamic ways by qualifying a query
with a nested query statement, or subquery. A subquery returns values
for a single attribute. By qualifying a query with a subquery, you can
create sophisticated queries that provide more direct access to very
specific data.
Let’s say you want to retrieve information about retailers with the
highest credit limit. You can find the value of the highest credit limit
first by issuing a query that includes the Credit Limit attribute with the
To reverse a qualification
1 In an attribute window, click the condition box above a When you reverse
qualification. a qualification, the
word not appears
2 Choose Query>Negate Clause. in front of the
condition box. If you change
your mind about the restric-
tion, click the word not to
remove it.
The original query returns a list of retailer names, locations, and sales amounts.
3 To retrieve results that match these items, resubmit the current query.
You don’t have to 4 To work with the same subset of results later, save the new query.
be in ad hoc drill- (See “Working with Super Queries” on page 337.)
down mode to
save a subset of
results. The in-clauses that
determine which subset to
retrieve are saved with the
query.
The query retrieves only the records for retailers with the six largest sales amounts
and includes the dates on which the sales were placed.
Grouping organizes the data into sets and retrieves a summary value for
each set. All selected attributes to which functions haven’t been applied
are grouped to ensure that the results set doesn’t calculate a summary
value for individual members of the group. (To group attributes
without applying functions, see “Grouping without Functions” on
page 333.) The following example shows how grouping works with
aggregate functions.
Suppose the database contains the following data about retailer sales:
The table below shows how the DBMS groups the date. The rows for
Billings, Toronto, represent one group, the row for Saddler, Toronto,
represents another group, and so on.
The DBMS then applies the sum to each group. When the results are
displayed, each group is organized alphabetically, numerically, or
chronologically. The table below shows how BI/Query displays the
final results. Groups are organized first alphabetically by name, then
alphabetically by city for retailers with the same name (such as Triteck)
but located in different cities.
Specifying Functions
You can choose from a wide range of functions to calculate the results
you want.
When you submit this query, BI/Query eliminates the records that
don’t meet the criteria you specified, groups the results, and calculates
The SUM function for the Invoice Amount attribute is qualified with >50000 to
retrieve a list of total sales greater than $50,000.
If you group by Country, the results are the same as if you selected all
the unique sales, except that the results are sorted numerically.
The Profit attribute determines the profit per product by calculating Unit Price minus
Unit Cost.
Choosing a Function
The Insert Function dialog
box displays a list of built-
in SQL functions. For cer-
tain DBMSs, a list of scalar
functions appears under
Other Functions. (A scalar
function takes a predefined
number of parameters —
usually one or two — and
produces a value for each
result in turn. Aggregate
functions are often used
with a group by clause; sca-
lar functions aren’t.)
The Average Profit attribute calculates the average profit made on each product.
8 To specify a data type for the calculated attribute and whether it’s
numeric or character, click Data Type, then use the Choose Data
Type dialog box to specify the information.
Creating super queries takes the work out of manipulating the results of
a query each time you want to perform the same operations on them.
Once a super query has been saved, it can be:
If your data access environment includes BI/Broker and you have the
appropriate system permissions, administrators can publish super queries
to the repository to make them available to users. (You don’t need to
save super queries first, but it’s good practice.) To save a query as
a data values
query file, or to
save its SQL string
Creating Super Queries as a text file for use in another
application, save it as a stan-
You can create super queries that filter results or combine two or more dard query, not a super query.
results sets. To create a super query, you submit one or more standard (See “Saving Standard Que-
queries, manipulate the results, then save the queries in the super query ries” on page 307.)
To save super queries, you must have the Save Queries permission.
Super queries are saved with the extension .qry and stored in the
Queries folder by default, but you can also store them elsewhere.
This super query retrieves information about retailer sales and narrows the range to
sales between $25,000 and $50,000.
This super query appends the rows of one results set to another.
6 Click Save.
Message pane
The top pane displays the structure of a super query using a tree list.
Icons
Each component query and each operation is included in the tree and is Query
represented by an icon. The operations performed on a component
Append
query’s results appear above the component query in the tree. For
example, if the results of a component query are reordered, then sorted, Join
the tree list shows three branches — first the component query, then Range
the reorder operation and the sort operation above it.
Reorder
If a join or append operation is performed on two of the component Sort
queries, it’s shown in the window above the queries and their
associated operations. Any operation that appears above a join or
append operation is applied to the results of the join or append.
When you’re
8 working with
7 complex super
3 queries, you can
2
1 see where a join or append
6 occurs by collapsing the tree
5 structure, then expanding the
4
branches one by one.
Editing an Operation
You can change how an operation manipulates query results by editing
the operation. You edit an operation starting in the super query
window. When you select the operation you want to edit, BI/Query
opens the appropriate dialog box, where you can make your changes.
The dialog box you use is the same one you used to create the
operation. (The Join Conditions dialog box is slightly different — you
You can’t edit an If any errors occur as a result of your changes, you need to correct them
append opera- before you can save or submit the super query. (See “Correcting
tion. Also, you
Errors” on page 345.)
can’t delete an
operation from a super query.
Operations are described in more detail elsewhere in this guide, as
outlined in the table below.
To edit an operation
1 If a super query isn’t loaded, choose Query>Load Query. In the
Load Query dialog box, select a super query, then click Load.
OR
In a super query’s results window, choose Query>Show Query.
2 In the super query window, right-click an operation, then choose
Edit Operation.
4 Click OK.
Correcting Errors
Each time you edit a super query, BI/Query checks for errors. You
can’t save or submit a super query that contains errors — you need to
correct the errors first. When you edit a super query, you may
introduce an error because the parts of a super query are
interdependent. For example, removing an attribute from a component
query when that attribute is used in a sort operation results in an error
in the sort.
Errors occur on operations, but you can correct them by editing either
the operation or its associated component query. For example, you can
To correct an error
1 In the super query window, click the operation causing the error.
Queries with a circular path are typically built by advanced users who
understand how to use join conditions in order to retrieve the
information they need.
With a Correlation
When administra- When you build a query with a correlation, BI/Query creates a
tors design a data temporary copy of the data object. This allows you to ask two different
model, they can
questions of the same object.
create permanent
copies of a data object using
You begin by selecting the relationships joining the data objects you
correlation names. In some
cases, this allows users to want to include in your query. The last relationship you select
avoid building circular que- determines how the circular query is formed. The data objects
ries. (See “Specifying Correla- connected to that relationship are the ones you’re presented with when
tion Names” on page 109.)
you’re prompted to create a correlation. And that relationship is applied
to the data object you create a correlation for.
For example, if you select the Managed By relationship last and create a
correlation for Employees, BI/Query creates a second, temporary copy
of Employees called Empo__Manag. (To name the correlation,
BI/Query uses the first five characters of the data object’s name, two
underscores, then the first five letters of the relationship you selected
last.) The result is two copies of Employees: one connected to
Departments through the Work In relationship, the other, temporary
copy connected to Departments through Managed By.
When you double-click the original data object in the design window,
you’re prompted to specify which attribute window you want to use
— the one for the original data object or the one for its correlation.
You can use one attribute window to ask one question, then the other
attribute window to ask the second question.
For example, suppose you want to use the data objects illustrated above
to find out which employees work for managers who make over
$60,000. You need a correlation because you’re asking for two kinds of
information from the Employees data object — the names of the
employees and who is a manager making over $60,000. You’d use the
Employees data object to find out the names of the employees, and
you’d use its correlation to find out who is a manager making over
$60,000. (You use the correlation for the second question because it’s
the one that uses the join condition in the Managed By relationship.)
When you submit the query, the DBMS processes it in two stages.
Behind the scenes, the DBMS first obtains a preliminary results set
(names of all employees and the departments they work in) by joining
each row in Employees with each row in Departments, then applying
the join conditions for Work In.
Departments X Employees
---------------------------------------------------------------------------------- = Results 1
Work In
Results 1 X Emplo__Manag
------------------------------------------------------------------------------ = Results Final
Managed By
select
Employees.LastName,
from
Departments,
Employees,
Employees Emplo__Manag
where
(
(
Emplo__Manag.Salary > 60000.0000
)
)
and
Departments.DepartmentID = Employees.DepartmentID
and
Departments.Manager = Emplo__Manag.EmployeeID ;
Double-click Employees to open the attribute windows for Employees and for its
correlation.
Choosing Employees opens the attribute window for the original Employees data
object. Choosing Emplo__Manag opens the attribute window for its correlation.
Without a Correlation
Unlike a query with a correlation, BI/Query doesn’t create a
temporary copy of a data object in the circular path. This allows you to
ask one question using all the data objects and all the join conditions in
the circular path. The results are usually more restricted because the
rows returned from the database must meet all the join conditions in
the circular path.
In a circular query without a correlation, the DBMS returns only the rows that meet the
join conditions in both the Work In and Managed By relationships.
For example, suppose you want to use the data objects illustrated above
to find out which employees make over $60,000 and manage the
When you submit the query, the DBMS processes it in two stages.
Behind the scenes, the DBMS first obtains a preliminary results set
(names of all employees who make over $60,000 and the departments
they work in) by applying the join condition for Work In to
Departments and Employees.
Departments X Employees
---------------------------------------------------------------------------------- = Results 1
Work In
The DBMS then applies the join condition for Managed By to the
preliminary results set to obtain the final results (employees who make
over $60,000 and manage the department they work in).
Results 1
------------------------------------- = Results Final
Managed By
select
Employees.LastName,
from
Departments,
Employees
where
(
(
Employees.Salary > 60000.0000
)
)
and
Departments.DepartmentID = Employees.DepartmentID
and
Departments.Manager = Employees.EmployeeID ;
Once you’ve named and prioritized the job, you can schedule the time
or times for it to run.
You can set recurring dates in multiples of hours, days, weeks, and
months. By choosing monthly intervals, you can also schedule
recurring jobs to run quarterly (every three months) and annually
(every twelve months).
You may want to run a job more frequently than daily but less often
than weekly. By choosing Daily, you can set it to run every so many
days—for instance, every three days.
If you use Monthly, you can choose the day of the month when the
job is to run based on a calendar date (for instance, the 1st of the
month) or based on a day and week (for instance, on Tuesday in the
first week of the month).
Instead of scheduling by date and time, you can specify that the job be
triggered by an event. You provide a short natural language description
of what must happen before your job runs. For instance, you could
type in an “annual regional sales query completed” event or an “after
weekly backup” event.
To specify an event
1 In the Schedule Job dialog box, click the When tab.
2 Under Frequency, click Event-based.
3 Under Events, select the event(s) that will trigger running the job.
OR
4 To also run the job at a specific date and time, click Advanced,
select the date and time, then click OK. (See “Advanced
Scheduling” on page 364.)
Advanced Scheduling
When combin- You don’t have to choose between scheduling by date and time and
ing events and scheduling by event. Instead, you can combine them.
dates to start a
job, take into For instance, suppose that management receives an annual regional sales
account how the scheduler
understands events. For report that is refreshed each year on March 1. For a meeting on April 4,
instance, you want a query to you want to provide several managers with results from a query that
run after daily backup on drills down into the same information used in that annual report. The
December 1. On November
query results will only make sense to the managers in the context of the
27, you schedule both the
event, “After daily backup,” latest annual report, but you want the query to take advantage of a
and the date, December 1. database update that will occur at the end of March. In other words,
Daily backup occurs on you want to be sure the annual report was refreshed before running the
November 28th. The sched-
query, and you want the query to run after the March 31 update.
uler recognizes that it is now
“After daily backup”. Then it
You schedule the query to run both on April 3 and on the Annual
waits for December 1. The
report runs as soon as it is Regional Sales Report Completed event. The query won’t run until
December 1, without waiting April 3, so the results will be current. But if for any reason the annual
for the daily backup to occur report hasn’t been refreshed, the query will be held. If it runs, you’ll
on December 1.
know the report was refreshed as well.
And you may want to make it possible for the completion of the job to
cause other jobs to run. If you have the appropriate system permissions,
you can supply and remove the means of triggering such events. You
may have permissions that allow you to include all these actions:
running the query or refreshing the report, distributing the results,
notifying users, and serving as a trigger for events that run other jobs.
You and the users you choose can then retrieve query results (and
refreshed reports) from the repository.
To retrieve results
1 In BI/Query, choose File>Schedule>Retrieve Results.
OR
In BI/Query Reports, choose File>Retrieve.
2 In the Retrieve dialog box, select a results set or report.
3 Click Retrieve.
4 To retrieve reports, in the Retrieve Data dialog box, specify
whether you want to refresh the data in the report.
E-mail
You select an e-mail action from the Add Action menu when you want
to send e-mail notification of the completion of the scheduled job,
when you want to provide the output of the scheduled job as an e-mail
attachment, or both. A button in the E-mail dialog box displays the
users and groups that can receive e-mail so that you can select the
recipients you want.
FTP
You use the FTP action when you want to deliver results using the
TCP/IP file transfer protocol, FTP. The FTP action prompts you for
the server address where you want the results file to be located. This
action doesn’t notify users, but you can provide the information they
need to FTP the results using an e-mail or broadcast message.
Push
Push technology allows pages of content (usually in HTML format) to
be delivered via predefined channels to users who subscribe to those
channels. If this action is available, your BI/Broker administrator has set
up a Pointcast or Microsoft Active Channel server.
You use the push action to select the channels to which to deliver a
notifier. You can pick the appropriate channel(s) from a list and add a
message. Push messages allow hypertext links to the job results. You
can incorporate the time of completion and the name of the document
in the message.
You can also schedule jobs based on other kinds of events, such as the
completion of another scheduled job or the completion of an activity
by another application.
The scheduler also tracks these software events, but only if you’ve
specified what events it should track. You name them in the scheduler
If the event requires an application other than BI/Broker, you must add
a command line in that application that executes BI/Broker’s FireEvent
utility. The FireEvent utility passes the event name to the scheduler
when the event has completed, signaling to the scheduler to start the
scheduled job. The syntax for the command line is shown below. (You
must include all parameters.)
You can also set up the jobs you schedule to serve as the events that
trigger other jobs to run. For instance, you might want to schedule a
Sales Query and a Summary Report that’s refreshed after the Sales
Query is run:
• When you schedule the Sales Query, you add a Trigger Event
action on the Actions page and give the action a name such as
“After Sales Query Runs” so that you can easily identify it as the
one you want when you schedule the Summary Report.
• When you schedule the Summary Report, on the When page, you
choose “After Sales Query Runs” as the event that causes the
summary report to refresh (see “Specifying When to Run a Job” on
page 358).
Notifying Yourself
In addition to notifying others or distributing results to them, you may
want to receive your own notification when a job is complete or when
an error occurs. You can choose to receive such messages by e-mail or
from the BI/Broker message broadcaster.
Sorting Results
When you submit a query, the rows of results are displayed in the order
the DBMS returns them unless you specify a sort order. Specifying a
sort order arranges rows alphabetically (A, B, C), numerically (1, 2, 3),
or chronologically (January 1, May 4, September 6) — or in the reverse
order — and specifies the order in which columns are sorted. You can
specify a sort order before or after you submit a query.
The number 1 in the Sort box for Credit Limit indicates that it will be sorted first; the
number 2 in the Sort box for Name indicates that it will be sorted second.
Sorting results first in reverse (descending) numerical order by credit limit, then
alphabetically by retailer name.
4 To specify a sort order for a column, click it, then click First, Last,
Up, or Down.
5 To specify reverse order, click a column, then click Descending.
6 Click OK.
3 To specify a sort order for a column, click it, then click First, Last,
Up, or Down.
4 To specify reverse order, click a column, then click Descending.
5 Click OK.
3 Click OK.
Combining Results
If a query is so complex that it requires two or more separate queries,
you can combine two results sets into one. This enables you to save
database processing time or create the equivalent of an outer join if
your DBMS doesn’t support it. You can either append the rows of one
results set to another or join columns of results sets.
Once you’ve combined results sets, you can create a super query, then
submit it to retrieve the combined results. You can also link the super
query to a button to perform these operations automatically. (For more
information on super queries, see “Creating Super Queries” on page 337.)
The data types of the columns in the first results set must match the
corresponding columns in the second results set. For example, if the
first results set contains two columns, and their data types are character
and numeric, respectively, the first two columns of the second results set
must also be character and numeric.
The two results sets can have a different number of columns as long as
the extra columns appear at the end of one set. (To exclude the extra
columns, you can hide them using Results>Hide Columns.) If the two
results sets contain columns with the same data type but in a different
order, reorder them using Results>Reorder Columns.
Query Results 1
Name aSales
Unisystems $10,145
Ziptech $6,430
Query Results 2
Appended Results
Unisystems $10,145
Ziptech $6,430
Appending rows from the second results set to the first. If the results sets have
different column names (for example, Retailer Name and Ret.Name), BI/Query uses
the name of the first set.
• the design window doesn’t provide joins for the attributes you need
to join
A left outer join includes all
rows from the left results set • the design window doesn’t include permission to create
and those that match from relationships between tables
the right.
• the database doesn’t support outer joins
• you want to combine results from more than one database
• after looking at the data you’ve retrieved, you see that you want to
join certain columns, but you don’t want to resubmit the
component queries (particularly if they took a long time to process
A right outer join includes
and you want to save time)
all rows from the right results
set and those that match
If the design window provides the joins you need and you want to reuse
from the left.
a set of joined results, consider creating and saving a standard query that
retrieves the results rather than saving the combined results sets as a
super query. Because the DBMS handles only one query, it may be able
to optimize the join operation more efficiently than BI/Query.
An outer join may even include When you join results sets, you need to specify which columns should
all rows from both results sets,
even if they don’t match. be joined and how. That’s because you’re creating a relationship
between the two tables. With the exception of columns containing
float and money data types, the connecting columns must have the
same data type.
You can also join results and have BI/Query include all rows from a
results set even if they don’t match. In SQL terminology, this is an outer
join. The example below shows that applying an outer join allows you
to display all sales, regardless of whether payment has been received.
You can also apply a left or right outer join, as illustrated in the
diagrams on page 386.
331 $2,561
511 $8,000
514 $2,303
818 $612
Query Results 2
101 $15,000
102 $52,303
331 $2,561
818 $612
Equijoin on Order #
213 $995
511 $8,000
514 $2,303
5 Choose the columns you want to join from the lists of columns.
6 To include all rows from one or both results sets, click Include All
Left Rows, Include All Right Rows, or both. (For more information,
see “Understanding Which Columns to Join” on page 389.)
7 Click OK.
Only rows that have an exact Leave Include All Left Rows and
match (equijoin). Include All Right Rows unchecked.
All rows from the left results set Click Include All Left Rows.
and those that match from the
right (left outer join).
All rows from the right results Click Include All Right Rows.
set and those that match from
the left (right outer join).
All rows from both results sets, Click Include All Left Rows and
even if they don’t match. Include All Right Rows.
Performing Calculations
You can perform basic calculations in a results window to determine
maximum, minimum, sum, and average values for a set of results. For
example, you can calculate the maximum and minimum values for all
attributes in the query as well as the sum and average values for each
numeric attribute.
Setting Up BI/Query
Before users can use BI/Query to update records in the database, the
administrator must set key fields in the data model, and users must be
granted certain database permissions. If users attempt to apply an update
before the data model and database are set up, BI/Query displays an
alert. For example, if a key field isn’t set, a BI/Query error message
appears; if the appropriate database permission hasn’t been granted, a
database-specific error message appears.
The view in which you work depends on the nature of the data and the
types of changes you want to make. A key appears beside or above a
key field to indicate that the field is locked and can’t be modified. Any
values you change are displayed in italics, and update indicators identify
whether you want to add, modify, or delete a record. The changes you
You can import data as a text file and paste data from the Clipboard. Be
sure you’re set up properly. (See “Setting Up BI/Query” on page 393.)
You add records from another application in three basic steps:
• Prepare the data and save it in a text file. (See “Preparing the Text
File” on page 398.)
• Specify results options in BI/Query to match the text file. (See
“Specifying Results Options” on page 398.)
Correcting Errors
If an error occurs while a record is being updated in the database, the
update to that record and the remaining records are lost. Errors may
occur, for example, when data separators or data types are incorrect in
records you’ve imported into BI/Query from another application. You
can correct errors easily.
To correct an error
1 To correct an error in the data separators, check the BI/Query
results options and make sure that the separators you’ve specified
match the separators used in the text file.
2 To correct an error in data types, identify the fields with
mismatched data types by highlighting the first cell in the update
window, then using the arrow keys to move from cell to cell. If the
data type in a cell is invalid, BI/Query prompts you to enclose it
within brace brackets ({}). Do so, or correct the data type. (Keep in
mind that while BI/Query may accept this data type, the DBMS
may not.)
3 When you’ve finished correcting the error, apply the update again.
Using Buttons
Buttons (sometimes called executive buttons) store a sequence of actions
The Benefits of Buttons
that is carried out automatically when you click them; they’re a quick
With a single click of a
and easy means of automating activities you carry out frequently. button, you can:
Buttons are ideal for executives and other decision makers who have
• submit standard and
limited knowledge of the database and who want quick answers to super queries and
standard questions. Buttons also provide non-technical users with easy queries you schedule to
access to their data. Administrators can include buttons in design run at a particular time
windows to take these needs into account. With the appropriate • generate reports and
HyperCubes
permissions, users can also create their own buttons.
• send results to files,
You can create buttons that automatically submit queries; generate other applications, and
reports and HyperCubes; display design windows; run scripts; and send database tables
Buttons can display text, icons, and pictures. You can create your own
text and use graphics stored in files; you can also use text and graphics
created in other applications and copied from the Clipboard. (This
allows you to use graphics in formats BI/Query doesn’t normally
support.) You can edit, resize, copy, move, and delete buttons.
Autosizing is turned on automatically so that buttons fit the text or
graphics they display.
BMP format is a Icons are graphics with a specific dimension (32 pixels by 32 pixels). An
good choice for icon file usually has the extension .ico. If you’re using a monochrome
creating graphics
icon, you can assign a color to it. Pictures are stored in BMP, GIF, or
files for use in
BI/Query. BMP format stores WMF format. Graphics imported from the Clipboard are metafiles (the
graphics with the lowest reso- most common format for graphics used by applications like Corel
lution and is available using DRAW) or bitmaps (created in a paint program).
any paint program. Keep in
mind, however, that graphics
To create a button
can add substantially to the
size of the data model. 1 Make sure you have the Edit Data Model and Save Data Model
permissions.
2 Create the query or automated process you want the button to run
or the design window you want it to display.
3 Display the design window in which you want the button to
appear.
Specify the
appearance of
the button
Specify the
actions it
automates
Specify where
to place the
results
6 To create a button that displays text, click Edit Text, then use the A fast way to copy
Text Style dialog box to type the text and specify the options you text from the
want. Clipboard is to
click Edit Text,
OR then copy the text into the
To copy text from the Clipboard, click From Clipboard. Click Edit text box in the Text Style dia-
Text, then use the Text Style dialog box to specify the options you log box.
want.
7 To create a button that displays an icon, click Icon. Click Select
Icon, then use the Select Icon dialog box to specify an icon. (If the
icon you want isn’t displayed, click Open File and use the Open
Icon File dialog box to specify one.) Click OK.
OR
To copy an icon from the Clipboard, click Icon, then From
Clipboard.
8 To create a button that displays a picture, click Picture. Click Select
Picture, then use the Open Picture dialog box to specify a picture.
OR
To copy a picture from the Clipboard, click Picture, then From
Clipboard.
In order to be able When you link a button to a standard query, clicking the button
to link buttons to submits the query and displays the results in the results window. The
queries, the que-
one step of submitting a predefined query replaces the several steps
ries must be stored
in the Queries folder with the required to submit the equivalent ad hoc query. If a query contains a
data model. prompt, you can enter a different value into the prompt each time you
click the button so that the same query returns different results based on
the value you enter.
You can also link a button to a super query that submits multiple
queries, then combines, filters, or reorders the results. Build the ad hoc
queries, manipulate them to produce the results you want, save the
resulting query, then link that super query to a button.
You can link a button to a script so that clicking the button carries out
the activities specified in the script.
You can also link a button to a query that saves the results as a text file.
If you’re writing a report about this quarter’s sales in Microsoft Word,
you can then open the text file in Word and copy the information into
your report.
Before sending an SQL script to the DBMS, make sure that you have
the Send SQL Scripts permission in BI/Query and that you’ve been
granted the appropriate database permissions. Sending SQL scripts
doesn’t compromise any restrictions placed on users by the DBMS, but
it does override BI/Query restrictions, such as the Allow Non-select
SQL permission. When you send the script, BI/Query displays the
commands as they’re sent to the host computer, and each command is
executed as it reaches the DBMS. BI/Query monitors for status codes
(success or error) but doesn’t retrieve data.
Two sample scripts are shown below. Keep in mind that they’re
written for a particular DBMS and connection type; your connectivity
This script creates the table, creates the columns, and specifies their data types.
This scripts inserts data into the columns of the new table.
(‘Brennan, Sharon’, ‘L
Secretary’, 23000.00,
You can create an application script that runs your Web browser and lets you visit
Hummingbird’s Web site (http://www.hummingbird.com) for information on BI/Query and
other business intelligence products.
Objects
BI/Query supports a rich set of automation objects. These objects are
arranged in a hierarchy of one parent object and several child objects;
the child objects are accessed through the parent object. In BI/Query,
the parent object is the Application object; the child objects are
DataModel, Window, Query, Prompt, Button, and ResultSet. Child objects
that occur in lists or groups are also called collections and are accessed
using their plural names. For example, to select the Sales Summary
query, the Visual Basic code would include a line that selects the
Queries collection from a list of queries:
Application Parent
object
DataModel Window
Child
objects
Window Query Prompt
Collections
Button ResultSet
Some objects are available only under certain conditions. For example,
the ResultSet object is accessible only from a results window. In
addition, results windows aren’t referred to by their BI/Query name
(such as Query Results 1.1) but rather by the corresponding query
Methods
Methods are actions that an object can perform. You use methods in
Visual Basic to cause objects to do things you want them to do.
Examples of methods in BI/Query are open (a data model), connect (to
the DBMS), submit (a query), and help (display online Help).
Properties
Properties are characteristics of an object that control its appearance and
behavior. You set and retrieve the values of properties for objects in
Visual Basic to change how they behave. Examples of properties in
BI/Query are cell (sets or retrieves the value of a cell in a results set) and
prompts (returns the list of prompts for a data model).
Sample Code
This section provides some sample Visual Basic code that describes the You can’t use
minimum steps required to use OLE Automation with BI/Query. For BI/Query to edit
application scripts.
simplicity, the code contains no error checking.
Instead, you need
to use a tool like Microsoft
Visual Basic, a Microsoft
Application Object Office application like Excel
or Word, or any programma-
To use BI/Query as an OLE Automation server, you need to first ble tool that supports OLE
create a BI/Query application object. The following code uses a Automation.
Dim
as Object
Submitting a Query
Now that the Sales data model is open, you can work with it — for
example, to submit a query. The following code creates the Sales
Summary Query object, opens the Sales Summary query, and submits it.
Because the Sales Summary Query object is a collection, the query is
selected from a list of queries (DataModel.Queries).
Shutting Down
When you’re finished using BI/Query, you can shut it down.
gql.Quit
Importing Information 425 Using the First Command only on Startup 441
Using the Clipboard 425 Issuing Two Commands to Obtain the
Effect of Three 441
Using Ornaments 426
Exporting Three Queries and Combining
Updating the Database 426
Them in One Worksheet 442
Using OLE 426
Sending Current Results to Excel 443
Creating Linked Objects 427
Running a Macro That Calculates a
Creating Embedded Objects 429 12-month Moving Total 444
Editing Linked Objects 430 Using Mail 445
Editing Embedded Objects 430
Exporting Information 431
Queries 431
Results 432
Using the Clipboard 433
To a File 433
To an Application 434
Preparing Results for Export 435
Specifying Results Options 435
Specifying Export Options 437
Exporting to Excel using DDE 438
Common DDE Commands 438
Setting Export Options for Excel 439
Using Two Commands 440
Importing and
Exporting Information
BI/Query makes it easy to share information with other applications.
You can import text and graphics to enhance the appearance and
usefulness of design windows, and you can import records stored in
other applications to update the database. BI/Query’s OLE support
allows you to create linked and embedded objects in design windows.
You can save BI/Query query and results files for use in other
applications and export results using DDE or menu commands.
Electronic mail allows administrators to distribute queries and results;
users can also share BI/Query files that they’ve created.
Importing Information
If you’ve created text or graphics in another application, BI/Query
provides a number of mechanisms for importing them into design
windows. For example, you can import graphics to represent buttons,
ornaments, and data objects; you can use imported text to create titles,
notes, and instructions. Whatever mechanism you use — whether it’s
using the Clipboard, importing from files, or using OLE — the objects
are imported as ornaments that you can move and resize like any other
BI/Query ornaments. You can also use text imported into BI/Query
to update records in the database, either by importing a text file or by
pasting data you’ve copied from another application.
Using Ornaments
You can create ornaments to display icons and pictures created in other
applications. Windows icons are found in .exe, .dll, and .ico files. Any
.wmf, .gif, or .bmp file contains graphical files. Windows 95 and
Windows NT also support enhanced metafiles (.emf). (See also
“Creating Ornaments” on page 198.)
Using OLE
More about OLE BI/Query supports Windows’ OLE protocol, which is a standard for
To find out more about exchanging information between applications. It allows you to import
OLE, see the user docu-
information (called OLE objects) from other applications into BI/Query
mentation for any
Microsoft application, design windows without leaving BI/Query. If those applications
such as Word. To find out support in-place editing, you can also edit objects from within BI/Query.
what OLE features an
application supports (such BI/Query is an OLE container, allowing it to import OLE objects from
as in-place editing and other applications. (BI/Query isn’t an OLE server, so it can’t create
drag-and-drop linking),
see its user documentation. OLE objects.) To create a linked or embedded object, the application
in which it was created (the source application) must be an OLE server.
There are two types of OLE objects: linked and embedded. A linked OLE doesn’t sup-
object is stored in the source document; the data model stores the port multiple-
page objects. If
location of the document and displays a representation of the object. If you import text
you add a linked object more than once to a data model, you can into BI/Query, import only
update it once in the source document, and the changes are made to one page at a time.
every instance of the object. Linking doesn’t add appreciably to the file
size of the data model. When the administrator distributes the data
model, he or she needs to ensure that users have read access to the
source documents for linked objects.
OLE objects are imported as BI/Query ornaments; you can move and To save space in a
resize them. Saving the data model saves OLE objects with it. OLE design window,
you can import
objects can be an entire file or, if you’re importing from Microsoft
OLE objects as
Word or Excel, a portion of a file. (For example, you can import a icons. In the Paste Special or
selected portion of a worksheet from Excel.) OLE objects can also be Import Object window, click
displayed as icons. OLE objects can take the form of graphics, text, Display As Icon.
sound, and even video. For example, the administrator can import a
video clip into an introductory design window that explains the
purpose of the data model.
OR
In BI/Query, position the cursor where you want the object to
appear. Choose Edit>Insert Object. In the Insert Object dialog
box, click Create from File, then specify the path and file name.
Click Link. Click OK.
OR
In BI/Query, position the cursor where you want the new object
to appear, then choose Edit>Insert Object. In the Insert Object
dialog box, click Create from File, then specify the path and file
name. Click OK. (To create a new object, make sure Create New
is selected, then select an object type. Create the object, then click
in BI/Query. (You don’t need to save the object first.)
Exporting Information
You can extend the usefulness of your BI/Query information by
exporting it to other applications to produce powerful worksheets,
reports, and other documents. You can export the underlying SQL for
standard queries, and you can export results. And using electronic mail,
the administrator can distribute BI/Query files, and users can share
them with other users.
Queries
If you have the Save Queries permission, you can save standard queries
for use by other applications by saving the corresponding SQL string as
a text file. You can then include the SQL in reports, use it in stored
procedures in the database, and so on. When you export a query in the
5 Click OK.
Results
Query results aren’t just useful in BI/Query — they’re also valuable
when they’re exported to other applications, where they can be
manipulated in other ways. BI/Query exports results files as text files
that can be used by any application. Columns are delimited by your
choice of character. For example, you can augment a quarterly or year-
end report prepared in Microsoft Word by including actual data that
you’ve retrieved from a query. Similarly, you can transfer results to a
worksheet in Microsoft Excel and analyze the data.
To a File
You can make results available to other applications by exporting the
results to a text file. Before exporting results, be sure that they’re
properly set up. (See “Specifying Results Options” on page 435 and
“Specifying Export Options” on page 437.) You can also create a
button that automatically saves the results of a query to a file. (See
“That Export Results” on page 411.)
Save Query Includes the name of the query that generated the
Name results. This is useful when you’re exporting to
applications that use worksheet macros to perform
certain operations depending on which query
generated the data.
3 If the executable for the application isn’t in your path, type the path
into the Execute Command Line text box.
4 If you’re exporting using DDE, type the name that the application
registers with the DDE server into the Service Name text box.
5 Under Commands, click DDE or Menu Item.
6 Type the commands to be executed in the receiving application.
(The menu command mechanism requires the format “menu
command|command”.)
7 Click OK.
[open(“c:\msoffice\excel\test.xls”)]|[run
(“test.xlm!macro1”)]
Button A [open(“c:\msoffice\excel\test.xlm”)]
[run(“test.xlm!macro1”)]
Button B [run(“test.xlm!macro2”)]
Button C [run(“test.xlm!macro3”)]
Button A [run(“test.xlm!macro1”)]
Button B [run(“test.xlm!macro2”)]
Button C [run(“test.xlm!macro3”)]
2 Create a button that selects the current query, then exports the
results using the default paste to Excel. This method reduces the
number of buttons but requires you to load each query in
BI/Query before running it. You must also reposition the cursor in
Excel each time so that the next set of results does not overlap.
3 Paste to a specific worksheet. Open the macro sheet by following
one of the instructions in “Issuing Two Commands to Obtain the
Effect of Three” on page 441. Then use the following macros:
Button A [open(“c:\msoffice\excel\test.xls”)]
[run(“test.xlm!macro1”)]
Button B [run(“test.xlm!macro2”)]
Button C [run(“test.xlm!macro3”)]
Using Mail
If you’re running an electronic-mail application on your computer, you Administrators
can export BI/Query files as enclosures with your mail messages. Mail may find it more
useful to use mail
provides an easy way for administrators to distribute new and revised to distribute revi-
queries and results to users. And at sites where users can create their sions to a data model rather
own queries and results, they can easily share them with other users. than an initial distribution.
Revisions usually include only
a small number of files.
You can retrieve When you send mail from BI/Query, the application starts up your
BI/Query files mail client. (For information on using your mail client, see the
using mail. Run
your mail client corresponding documentation.) If you build a query before starting up
and retrieve the files into the mail, BI/Query automatically encloses the corresponding .qry file in
appropriate folders. (For your message — regardless of which window you’re working in. If you
query files, this is the Queries
retrieve a results set, then start up mail, the corresponding .qrd and .qry
folder. For results, this is the
folder where BI/Query is files are enclosed only if the results window is the active window. To
stored; be sure to retrieve automatically enclose a results set, display the results window before
both .qrd and .qrr files.) To use running mail. If you don’t want to include the current query or results
retrieved files, close the data
set in a mail message, remove the file from the enclosure.
model if it’s open, reopen it,
then open the files.
To send mail from BI/Query
1 Choose File>Send.
2 Specify a recipient and subject and enclose any additional files.
3 Send the message.
Index 447
applications connections to DBMS, 64, 149, 155–156
exporting to. See exporting querying, 357
importing from. See importing automation
objects, 418, 419 controllers, 411, 416, 417
scripts. See scripts objects, 416, 418–419
attaching. See linking scripts. See scripts
attributes, 20–21, 99–100 autosizing ornaments, 199, 406
actual relationships with, 22 AVERAGE DISTINCT function, 329
adding, 146, 235–237, 330, 334–336 AVERAGE function, 329
calculated, 146, 237–238, 330, 333, 334–336 average value for results, 390
calculations on, 326–337, 390
comments, 190–198
creating, 99, 116–117, 330, 334–336 B
data formats, 245–253
data objects with, 20–21 batch processing. See scheduling queries
data types, 235–237 BI/Analyze, 13, 79
data values, 135–136 BI/Broker Repository, 31, 39, 68, 215–219, 310, 357,
disabling, 135–136 366, 370
displaying, 295–298 publishing
database name, displaying, 194 data models, 137, 215–219
deleting, 132, 133, 235–238, 238–240 queries, 310–311
descriptions, 190–198 retrieving
functions, applying, 326–336 data models, 39–40
grouping, 327–328, 331–334 queries, 312
hiding, 132–133, 192, 237 setting security, 137–141
in variables, 280 BI/Broker, 12, 39, 131, 310, 357, 369, 371, 372
indexing, 78 BI/Query Admin, 12, 13
joining objects, 104–107 BI/Query Reports, 13
key, 393–394, 396 BI/Query Update, 12, 13
names BI/Query User, 12, 13
displaying, 194 BI/Query, 12
specifying, 96, 104 exiting, 421
null values, allowing, 235–237 overview, 5, 12–13, 17–33
ordering, 99–100, 382–383 starting, 37–39
sorting, 378–380 suggesting enhancements, 10
updating, 394 using on the Web, 32
automatic variables. See variables BI/Web, 12
automating Personal Portfolio, 32, 39
activities, 405–422 bitmap files, 199, 406
macros, 416 BMP format, 406
OLE, 405, 411, 416–422
scripts, 405, 410–411, 414–416
448 Index
borders Check Design command, 125
buttons, 408 checking design of data models, 124–125
ornaments, 200 child objects, 418–419
boxes, using, 175 circular queries, 347–354
Broadcast message action, 369 no correlations, 352–354
buffers, using, 153–155 with correlations, 348–352
buttons, 23, 405, 405–406, 436 Clear command, 133
adding, 95 Clipboard
aligning, 171–172 exporting to, 411, 433, 433
borders, 408 importing from, 198, 200, 397, 407, 425–426
colors, specifying, 176, 201–205 collection, 97, 117
copying, 95 Color Objects in Active Window command, 203
creating, 406, 413 colors, using, 170, 176, 201–204, 251–252
deleting, 95, 406 Column Order command, 382
editing, 95, 406 columns in results
graphical, 176, 406 hiding, 132–133, 382–383, 384
iconic, 406 joining, 386–390
moving, 95 ordering, 382–383, 384
queries, linking to, 408–410 sorting, 379
scripts, running, 410–411, 417 viewing hidden, 383
split data models with, 41, 95, 406 Combine Columns command, 384
tables, creating, 412–413 Combine command, 302
textual, 173–174 Combine Results command, 385, 388
windows, linking to, 18, 410 combined data models, 24, 27–28, 41, 127, 145
distributing, 214–215, 219–228
editing, 234
C files, 223
passwords, 123–124
calculated attributes, 146, 330, 333, 334–336 saving, 125–126, 127
updating, 237–238 combining
calculations qualifications, 296, 301–302
in variables, 280 results, 339, 383–390
on results, 390, 421 comments for attributes, 190–198
with attributes, 146, 326–337 Compare Table dialog box, 236
with queries, 326–336 comparing
canceling data model to database, 235–238
ad hoc drill-down mode, 323 queries to data model, 238–240
queries, 146, 160–161 comparison operators, 303–304
scheduled jobs, 164 compiling help files, 206
Case-sensitive Comparisons preference, 294 Compute command, 390
catalog table, using, 190, 192–198 Computed Attributes permission, 121, 146
characters, special, 250–251 computed strings, 251–252
Index 449
condition box, 302, 319 data models to
conditional prompts, 270, 274–279 diskettes, 220
conditions, applying. See qualifying file server, 214, 219–220
Connect Automatically preference, 62, 155 data objects, 95, 108–110
Connect command, 69 OLE objects, 427–429
Connect Objects command, 101, 102 ornaments, 95
Connect per Query preference, 149 relationships, 95
Connect per Window permission, 65 user layer to administrator layer, 233–234
connecting correcting errors, super queries, 345–347
lines between data objects, 100–102 correlation names, 95, 109, 109–110, 348
per window, 64–67 Count All command, 331
to DBMS, 47–69, 148–149, 153–156 COUNT DISTINCT function, 330
automatically, 62–64, 149, 155–156 COUNT function, 329, 333
creating connection files, 48–50, 148 Create Button command, 407, 440
default connection files, 48, 69, 217 Create DB Script command, 119
disconnecting after query processed, 155–156 Create DB Tables command, 117, 193
Ingres/Net, 153 Create Ornament command, 199
middleware, 47 creating
multiple databases, 64–67 actual relationships, 101–102
passwords, 148 annotations, 205–206
row buffering, 153–155 attributes, 99, 116–117, 330, 334–336
SQL*Net, 153 descriptions, 190–198
TCP/IP connections, 52–61 buttons, 406, 413
testing, 51 circular queries. See circular queries
connection files, 47, 48–69 colors, 204
assigning to design windows, 64–67 connection files, 48–51, 148
creating, 48–52 correlation names, 109, 109–110
distributing, 52 data models, 93–127
TCP/IP, 52–61 See also designing data models
testing, 51–52 data objects, 96–100, 115, 116–117, 150, 157, 412–
Connections command, 49, 51, 61, 69, 116 413
Contents command, 8, 10, 206 data values
Control Panel settings, 245, 245–247 query files, 264–266, 276
conventions in this guide, 7 results files, 261–263
converting design windows, 95–96, 167–176
data objects and relationships, 101–102 embedded
two-digit years, 252–253 objects, 429
Copy command, 433 relationships, 101
Copy Query to Model command, 342 help files, 206
copying join conditions, 104–107
buttons, 95 lines in design windows, 173
Clipboard, using, 425–426, 433 linked objects, 427
450 Index
metadata, 179–190 combined, 24, 27–28, 41, 127, 145, 234
nested queries, 317–318 See also combined data models
ornaments, 198–200, 425–426 comparing with queries, 238–239
prompts, 270, 272–273, 275 creating, 93–127
queries. See queries data objects, 20–21
relationships, 100–102, 147, 324–326 designing. See designing data models
results files, 196–198 distributing, 211–228, 234, 427
split data models, 126–127 BI/Broker Repository, using, 215–219
subqueries, 317–318 combined, 214–215
tables in database, 114–120, 150, 157, 192–194, 229, database, using, 221–230
230, 412–413 diskettes, using, 220
variables, 281–286 file server, using, 219–220
creator 97, 117 mail, using, 220–221
creator name, 97, 117, 187, 229–230 split, 211–212
Custom Checks permission, 148 editing, 19, 41, 145, 233–234, 235–240
customer support, 9–10 files, 25, 26, 40–42, 211–215, 233–234
ID, 223, 224, 226, 228
join conditions, 237–238
D loading from database, 41–42, 224, 229, 420
opening, 32, 40–41, 62, 63, 93–94
data ornaments. See ornaments
about data. See metadata 179 overview, 18–28
access. See access to data passwords, 123–124
adding to tables, 194 permissions, 121–122
aliasing, 266–269 preferences, 122–123
dictionary, using, 190, 192–197 publishing, 31–32, 215–219
entering, 245–248 refreshing, 132, 235–240
formats, 245–253 relationships, 21–22
colors, 251–252 retrieving from repository, 32, 39–40
dates, 245–247, 247, 250 saving, 32, 125–127
default, 245 securing, 32
numbers, 245–247, 249 sharing, 31–32
strings, 250 split, 24, 25–27, 40, 145, 233–234
groups, 327–328, 331–334, 336 See also split data models
in multiple databases, 64–67 storing, 31–33
organizing in database, 79–81 table access, 131–136
substituting values, 251–252 testing, 227
types, 235–237 updating, 132, 235–240
updating in database, 145, 149–150 user access, 131–150
data models, 18–28, 93–127 version, 224, 228
buttons. See buttons windows. See design windows
checking design, 124–125 Data Object tool, 116
Index 451
Data Object Relationship command, 102 query files, 136, 156, 257–259, 264–266
data objects, 20–21 creating, 264–266, 276
alias names, 109, 109–110 lookup table, using, 77
aligning, 171–172 naming, 258–259
attributes, 20–21, 99–100 prompts with, 258–259, 276
adding, 116–117 results files, 136, 156, 257–263
key, 393–394, 396 creating, 260–263
ordering, 99–100 naming, 258–259
colors, specifying, 176, 201–205 prompts with, 258–259
connecting, 21–22, 100–107, 324–326 spreadsheet, using to create, 262–263
converting to actual relationships, 101–102 text editor, using to create, 262–263
copying, 95, 108–110 database
correlation names, 95, 109, 109–110 adding records to, 393
creating, 96–100, 115, 116–117, 150, 157, 412–413 from another application, 397–399, 426
design windows, using multiple, 21, 95 catalog table, using, 190, 192–197
iconic, 200–201 connecting to, 47–69, 148–149, 153–156
join conditions, 104–107 creating tables in, 114–120, 150, 157, 192–194, 229,
merging, 111–114 230, 412–413
names, 194 data
displaying, 101 access, 131–136
specifying, 96, 108, 109, 150, 413 dictionary, using, 190, 192–197
qualifying, 133–135, 157, 237–238, 269 organizing, 79–81
queries, 291 data models, loading, 41–42, 224, 229, 230
ranking, 158–160 DB2, 158
refreshing, 132, 235–238 deleting records from, 393–397, 400
relationships between, 21–22, 100–107, 147, 324–326 denormalizing tables, 78
updating, 235–238 designing, 77–81
data types, 334 distributing data models from, 221–230
invalid, 400 editing, 149–150
Data Values command, 294 indexing attributes, 78
Data Values folder, 211, 214, 229, 258 load
Data Values Results command, 197, 198, 261, 263 data models, 41–42, 224, 229, 420
data values, 29–30, 135–136, 257–269 managing, 146, 153–164
access, 135–136, 258 tables, 96–100
aliasing data, 266–269 lookup tables, 77
displaying, 295–298 managing load on, 146
files, 223, 257–269 modifying records in, 393–397, 400
icon, 295–298 names, 194
in variables, 280 Oracle, 158–160
prompts, using with, 258–259, 276 populating tables, 194
qualifying attributes with, 29–30, 156, 257, 294, 295, ranking tables, 158–160
296–298 resources used for query, 158
452 Index
specifying, 97, 117 settings, 122–123
summary information, storing, 79 text styles, 245
Teradata, 158 defining. See creating
updating, 112, 145, 149–150, 194, 393–400 Delete Row command, 397
See also DBMSs deleting
Database Management Systems. See DBMSs attributes, 132, 133, 235–238, 238–240
database name, 187 buttons, 95, 406
DataVals folder, 25–26 calculated attributes, 334
Date Entry command, 253 characters in a string, 250
dates database information, 145, 149–150
calculating in variables, 281, 282 ornaments, 95, 198
entering, 294 qualifications on attributes, 294, 296
fixed, 252–253 records from database, 393–397, 400
formats, 245–247, 250 scheduled jobs, 164
scheduling, 358–362 denormalizing tables in database, 78
sliding, 252–253 denying access to data, 138
DBMSs descriptions for attributes, 190–198
connecting, 47–69, 148–149, 153–156 Design Mode, 19–20
automatically, 62–64, 149, 155–156 design windows, 18–19, 95–96
creating connection files, 48–51, 148 aligning objects, 171–172
default connection files, 48, 69 assigning connection files, 64–67
middleware, 47 boxes, 175
multiple databases, 64–67 buttons. See buttons
passwords, 148 colors, specifying, 170, 176, 201–204
TCP/IP connections, 52–61 creating, 95–96
testing connections, 51 data objects, 21
disconnecting after query processed, 155–156 designing, 167–176
Ingres/Net, 153 displaying, 410
Oracle, 158–160 graphics, 176
permissions, 142, 395 lines, adding, 173
row buffering, 153–155 mastheads, 172
SQL scripts, naming, 94, 95
sending, 148, 414–416 ornaments. See ornaments
SQL*Net, 153 tables, loading, 96–100
Teradata, 158, 334 white space, 174–175
DDE, 411, 433, 434, 438–445 designing
commands, 438–439 data models, 75–76, 96, 97, 100, 167–176
exporting to Excel, 438–445 accessing user, 75–76
default checking design, 124–125
colors, 201–203 data access, 131–150
connections, 48, 69 database, 77–81
data format, 245, 248 detached queries, 161
Index 453
dictionary, data, 190, 192–198 E
disabling access to data. See access to data
disconnecting after query processed, 155–156 Edit command (for OLE), 431
diskettes, distributing data models using, 220 Edit command, 430
displaying Edit Data Model permission, 95, 115, 121, 145
data object names, 101 edit mask, 251–252
data values, 295–298 Edit menu. See specific commands
data, 245, 248–252 Edit Operation command, 344
database names, 194 Edit Queries permission, 121, 133, 145, 321, 322
design windows, 410 editing
hidden columns, 382–383 application scripts, 419
relationship buttons, 41, 95, 406
icons, 101 calculated attributes, 334
names, 101 combined data models, 234
scheduled jobs, 162–164 data formats, 248–252
Distinct command, 261, 263, 265, 276 data models, 19, 145, 233–234, 235–240
distributing database, 149–150
connection files, 52 embedded objects, 430
data models, 31–33, 211–228, 234, 427 join conditions, 237–238
BI/Broker Repository, using, 215–219 linked objects, 430
combined, 214–215 logon scripts, 57–58
database, using, 221–230 online help, 205–207
file server, using, 219–220 ornaments, 41, 95, 198
mail, using, 220–221 qualifications. See qualifying
split, 211–212 queries, 145–146, 158, 238–240, 321–323
queries, 31–33 records in database, 393–397, 400
BI/Broker Repository, using, 310–312 split data models, 233–234
reports, 31–33 SQL string, 145–146, 158, 321–322
scheduled job output, 367–370 super queries
TCP/IP settings, 60–61 component queries, 340, 342–343
Do Update command, 400 operations, 340, 343–345
documentation conventions, 7 TCP/IP settings, 58–60
downloading from database, 41–42, 229, 230, 420 electronic documents, 8–9
drawing toolbar, 94 e-mail
duplicate information, suppressing, 330 action, 367
Dynamic Data Exchange, 411 address, Hummingbird, 10, 11, 14
Dynamic Link Library (DLL) files, 148 embedded
Dynamic Relationships permission, 121, 325 objects, 199, 426
dynamic relationships, 110, 147, 324–326 creating, 429
editing, 430
relationships, 22, 100, 101
creating, 101
454 Index
join conditions, 104–107 results, 136, 156, 257–263
Enforce Connect per Query permission, 64, 65, 149, 155 Dynamic Link Library (DLL), 148
enhancements, suggesting, 10 exporting to, 411–412, 433, 435–437
equal joins, 105, 387–390 formats, 199, 406
errors graphics, 199, 406
connecting, 51 icons, 199, 200, 406, 426
editing super queries, 345–347 importing
updating database, 400 results, 397
Estimate Resources command, 158 importing, 426
events, scheduling based on, 362–365, 371 results, 426
Excel, 23, 405, 411, 416–418 mailing, 220–221, 445–446
exporting to, 411, 438–445 names, 258–259
importing from, 398, 427 online help, 206, 207
exception reporting, 251–252 passwords, 123–124, 148
EXEC statements, sending to database, 414 Prompts, 279, 281
executive buttons. See buttons prompts, 270
exiting BI/Query, 421 queries, 223, 310, 431–432
exporting, 431–446 reports, 223, 446
buttons, using, 433, 436 results, 190, 196–198, 309–310, 411, 433
Clipboard, using, 433 separators, 398
DDE, using, 434, 438–445 server, using, 219–220
mailing files, 445–446 storing centrally, 31–33
queries, 431–432, 445–446 TCP/IP settings, 60–61
reports, 446 Fill Color tool, 203
results, 309–310, 411–412, 412–413, 432–438, 445– Filter Results command, 379, 381, 390
446 filtering results, 338–339
format, 435–437 finding
to Excel, 438–445 administrator layer, 42–43
expressions. See variables errors in data model design, 124–125
FireEvent utility, 372
fixed dates, 252–253
F fixing. See updating
Form view, 396–397
fields. See attributes Format command, 248
File menu. See specific commands formats
file transfer protocol, 369 data, 245–253
files colors, 251–252
administrator layer, 223 default, 245
data models, 25, 26, 211–215, 233–234 substituting values, 251–252
distributing, 211–230 dates, 245–247, 250, 294
data values, 223 graphics, 406
query, 136, 156, 257–259, 264–266, 276 numbers, 245–247, 249
Index 455
formats (continued) grouping
results, 435, 435–437 attributes, 327–328, 331–334, 336
strings, 251–252 prompts, 270, 271–279
See also designing groups, 137–141
formulating. See creating
four-digit years, converting to, 252–253
FTP action, 369 H
functions, 327–334
aggregate, 327–337 HAVING clause, 332–333
AVERAGE DISTINCT, 329 help
AVERAGE, 329 compiler, 206
COUNT DISTINCT, 330 obtaining technical support, 9–10
COUNT, 329, 333 online, 8, 205–207
group order, 327–328, 331, 332, 336 Help menu. See specific commands
in variables, 280 heterogeneous connections. See connecting to multiple da-
MAXIMUM, 329 tabases
MINIMUM, 329 Hide Column command, 383, 384
none, 329 hiding
qualifying attributes, 331–333 attributes, 132–133, 192, 237
scalar, 336 columns
SUM DISTINCT, 330 in tables, 132–133
SUM, 79, 327, 328, 329, 331 of results, 382–383, 384
hierarchical prompts, 270, 271–279
homogeneous connections. See connecting to multiple da-
G tabases
How to use Help command, 8
GQLMETA table, 223, 228, 229, 229–230 Hummingbird
GQLMnnnn table, 223 BI/Analyze, 13, 79
GQLQnnnn table, 223 BI/Broker, 12
GQLRnnnn table, 223 BI/Query, 12
GQLVnnnn table, 223 BI/Web, 12
granting access to data, 138 e-mail address, 10, 11, 14
graphics, 199, 406 Professional Services, 11
buttons with, 176, 406 Sales, 14
design windows with, 176 technical support, 9–10
formats, 406 Trace Utility, 10
importing, 425–426 Web site, 10, 11, 14
ornaments with, 198–200, 425–426 HyperCubes, 79
Grid Settings command, 171
grid, aligning objects, 171–172
Group Qualification command, 332
group qualification, 332–333
456 Index
I J
icons, 199, 200, 406, 426 job actions. See actions
buttons with, 406 jobs. See scheduling
data objects with, 200–201 Join Columns command, 387, 388
importing, 425–426 Join Conditions command, 105
ornaments with, 198–200, 407 join conditions, 104–107, 325
relationships with, 101 creating, 104–107
importing, 425–431 prompts, including, 106–107
attribute descriptions, 190, 197–198 updating, 237–238
Clipboard, using, 198, 425–426, 428, 429 variables, including, 106–107
data values, 262 joining columns of results, 386–390
results, 262–263
files, 397, 426
graphics, 425–431 K
icons, 425–426
OLE objects, 426–431 key attributes, 393–394, 396
ornaments, 425–426 kinked lines, creating, 100
prompts, 279–280
results from another application, 262–263, 397, 426
text, 397, 425–431 L
variables, 286–287
video, 427 Layout menu. See specific commands
indexing attributes, 78 layout palette, 94
information access. See access to data layout. See designing
inheritance, 138–139 leaving
conflict, 139 BI/Query, 422
denying, 138 prompts empty, 299
granting, 138 Line Color tool, 203
Insert Attribute command, 99, 190 Line tool, 173
Insert DB Name command, 315 lines
Insert from File command, 399 adding, in design windows, 173
Insert Object command, 428, 429 kinked, 100
Insert Subquery command, 318 Linked Object command, 430
inserting. See adding linked objects, 199, 426–428
invalid data creating, 427–428
entry, 248 editing, 430
types, 400 linking
buttons to
applications, 411
design windows, 410
queries, 408–410
Index 457
linking (continued) M
buttons to (continued)
scripts, 410–411, 417 macros. See scripts
tables in database, 412–413 mailing files, 220–221, 445–446
data objects, 100–102, 324–326 MAPI, 220–221, 445–446
data values to mastheads, using, 172
attributes, 258–259 Maximum Rows Retrieved permission, 146
prompts, 258–259, 276 MAXIMUM function, 329
objects using OLE, 426–428 Maximum Query Time permission, 146, 161
creating, 427–428 Maximum Rows Retrieved permission, 161
editing, 430 maximum value for results, 390
queries to buttons, 23 menu commands. See specific commands
reports to buttons, 23 Merge Joins command, 113
scripts to buttons, 23 Merge Object command, 113
windows to buttons, 18 merging data objects, 111–114
list icon, qualification tree, 294 message pane, super query window, 342
load Metadata Source command, 186, 187
data models from database, 41–42, 420 metadata
database, managing, 146 adding
tables from database, 96–100 to data model, 81–82, 179–190
Load Metadata command, 189 to database, 181–183
Load Query command, 340, 342, 344 as display names, 180–181
Load Tables command, 97 as tool tips, 180–181
loading loading into data model, 180, 188–190
attribute descriptions, 190 queries, 180, 183–185
comments, 190 process, 185
data models from database, 224, 229 structure, 183–185
tables from database, 224, 230 templates, 180, 186–188
lock icon, 41 source, 180
Log window, 236–238, 239–240 specifying, 186–188
logon scripts, 52–61 tables
editing, 57–58 creating, 181–182
examples, 54–55 loading, 182
prompt/reply pairs, 55–57 populating, 182–183
reply tags, 54–55 metafiles, 199, 406
static strings, 55 methods for objects, 419
logos, using, 172 middleware connections, 47
lookup tables, 77 MINIMUM function, 329
minimum value for results, 390
model ID, 223, 224, 226, 228
Modifiers command, 261, 263, 265
modifying. See editing
458 Index
More Windows command, 343 numbers
moving entering, 245–247
buttons, 95 formats, 245–247, 249
ornaments, 95
user layer to administrator layer, 233–234
multiple prompts, 270, 271–279 O
Object command, 431
N Object Qualifier command, 134
objects
Name in Database command, 110, 194 automation. See automation objects
name of OLE, 199, 426–431
actual relationships, 101 See also data objects, buttons, ornaments, and
attributes, 96, 104, 194 relationships
simplify, 98–99 OLE, 199, 426–431
correlation, 95, 109, 109–110 automation, 405, 411, 416–422
creator, 229–230 editing scripts, 419
data model files, 25 sample code, 419–422
data objects, 96, 101, 104, 108, 109, 150, 194, 413 Visual Basic, using, 418–422
simplify, 98–99 objects, 199, 426–431
data values files, 258–259 creating, 426–431
design windows, 94, 95 editing, 430–431
prompts, 270, 272, 273 once-only scheduled jobs, 358–359
queries, 196 online
relationships, 101, 104 electronic documents, 8–9
results files, 197 help, 8, 205–207
scheduled jobs, 357–358 technical support, 10
tables in database, 150, 194, 413 tool tips, 8
natural joins, 387–390 Open command (for OLE), 431
Negate Clause command, 319 Open for Insert command, 395, 397
negating qualifications, 319 opening
nested queries, 316–318 data models, 32, 40–41, 62, 63, 93–94
network queries, 32
connections. See connecting to DBMS operating permissions. See permissions
load. See load operating preferences. See preferences
New command, 94 operator list, 295, 302–307
New Query command, 326, 332 operators, 295, 302–307, 318
new. See creating comparisons, making, 303–304
none function, 329 in variables, 280
normalized tables in database, 78 matching
null values, 235–237, 306–307, 330 character strings, 304–305
items in list, 305–306
Index 459
operators (continued) Paste command, 198, 426
null values, 306–307 Paste Query from Model command, 343
range of values, 306 Paste Special command, 428, 429
user-defined, 307 Path to Admin Layer permission, 43
options, for exporting results, 436 pausing scheduled jobs, 164
Oracle database, 158–160 Permissions command, 121, 124, 142
order of permissions, 121–122, 142–143, 217, 225
attributes, 99–100, 378–380 Allow Non-select SQL, 121, 145, 414
columns in assigning, 142–144
results, 382–383, 384 BI/Broker, 142, 310, 311
prompts, 272 Computed Attributes, 121, 146
results, 377–380 Connect per Window, 65
organizing. See designing Custom Checks, 148
ornaments, 23 DBMS, 142, 395
adding, 95, 198–200 Dynamic Relationships, 121, 147, 325
aligning, 171–172 Edit Data Model, 95, 121, 145
autosizing, 199, 406 Edit Queries, 121, 133, 145, 321, 322
borders, 200 Enforce Connect per Query, 63, 65, 149
colors, specifying, 176, 201 Maximum Query Time, 146, 161
copying, 95 Maximum Rows Retrieved, 146, 161
creating, 198–200, 425 Path to Admin layer, 43
deleting, 95, 198 publishing, 138
editing, 95, 198 Save Data Model, 95, 121
graphical, 198–200, 425 Save Passwords, 148
iconic, 198–200 Save Queries, 121, 147, 308, 338, 432
importing, 425 Save Split Data Model, 126, 127, 145
moving, 95 Send SQL Scripts, 121, 148
OLE objects. See OLE Set Administrator Password, 124
split data models with, 41, 95, 198 Submit to Named Table, 121, 150, 157, 413
text, 173–174, 198–200, 425 Submit to Table, 115, 150, 412
outer joins, 105, 387–390 Update Database, 121, 149, 394
Personal Portfolio, 39
pictures
P ornaments with, 200, 407
See also graphics
package, 216 placeholders, in variables, 283–284
pages, OLE objects, 427 populating tables in database, 194
palette, layout, 94 predefined queries. See buttons
parent objects, 418, 419 Preferences command, 122, 124, 144, 202, 203, 247, 435
passwords preferences, 122–123, 144
data models, 123–124 Allow Dynamic Relationships, 147, 325
DBMS, 148 Case-sensitive Comparisons, 294
460 Index
Connect Automatically, 62, 155 single, 270, 270–271
Connect per Query, 149 testing, 273, 277–279
Query Time before Prompt, 146 titles, 273
Rows Buffered, 153 using, 298–300
Rows Retrieved before Prompt, 146 Properties command, 173
Show Relationship Names, 101, 103 properties of objects, 419
Show Relationships, 101, 103 Properties tool, 173
Show SQL String, 145, 321, 322 Publish action, 370
prefix for tables, 229–230 Publish command, 218
Print action, for reports, 368 Publish Query command, 311
prioritizing scheduled jobs, 357–358 publishing
problems data models, 31–32, 137, 138, 215–219
connecting, 51 user layers, 216
reporting, 10 queries, 31–32, 310–311
updating database, 400 super queries, 337
procedures, in variables, 280 Push action, 370
product support, 9–10
Professional Services, Hummingbird, 11
programmable applications. See scripts Q
prompt/reply pairs, logon scripts, 55–57
Prompts command, 270, 273, 279 qualification text box, 293–294
Prompts file, 281 qualification tree, 293–296, 331–332
prompts, 30, 269–280 condition box, 296, 302, 319
conditional, 270, 274–279 data values icon, 295–298
creating, 270, 272–273, 275 list icon, 294
data values, using with, 258–259, 276 operator list, 295, 302–307
drill-down, 270, 271–279 qualification text box, 293–294
files, 270 qualifying
group, 270, 271–279 actual relationships, 133–135, 157, 269
hierarchical, 270, 271–279 attributes, 29–30, 293–307, 331–333
importing, 279–280 ad hoc drill-down mode, 323–324
in variables, 281 combining qualifications, 296, 301–302
join conditions with, 106–107 comparisons, making, 303–304
leaving empty, 299 deleting, 296
linking queries to, 408 editing qualifications, 321–323
multiple, 270, 271–279 grouping, 327–337
names, 270, 272, 273 lookup tables, 77
qualifying matching character strings, 304–305
actual relationships, 269 matching items in list, 305–306
attributes, 269, 298–300, 333 negate clause, 296, 319–320
data objects, 269 null values, 306–307
objects, 133–135 operators, 295, 302–307, 318
Index 461
qualifying (continued) prompts. See prompts
attributes (continued) publishing, 31–32, 310–311
qualification tree, 293–296 qualifying. See qualifying
range of values, 306 refreshing, 238–240
reversing qualifications, 296, 319–320 relationships, 22
separating combined qualifications, 302 retrieving from repository, 32, 312
updating, 238–240 row limit, 146, 160–161
with an attribute, 315–316, 333 saving, 147, 307–309, 337–340, 431–432
with data values, 29–30, 77, 156, 257–269, 295, scheduling, 33, 146–147, 161–162, 357–374
296–298 securing, 32
with multiple qualifications, 300 sharing, 31–32
with prompts, 30, 258–259, 269–279, 298–300, sort order, 378–379
333 SQL. See SQL
with subqueries, 316–318 standard, 386, 431
with values, 293–294, 296–298 storing, 31–33
with variables, 31, 280, 286 submitting, 408–413, 420
data objects, 133–135, 157, 237–238, 269 buttons, using, 408–413
results, 323–324 to applications, 432–445
tables, 133–135, 157 to files, 310
with variables, 320–321 to tables, 115, 150, 157, 412–413
Queries folder, 25–26, 211, 214, 229, 270, 308, 338 to windows, 410
queries, 28–30, 291–312 subqueries, 316–318
attribute descriptions, 191–196 super, 264, 337–347, 383, 386, 408
attributes, qualify. See qualifying creating, 337–340
buttons, linking to. See buttons editing, 340–347
calculations with, 326–337 time limit, 146, 160–161
canceling, 146, 160–161 updating, 238–240
circular, 347–354 variables, 320–321
no correlations, 352–354 variables. See variables
with correlations, 348–352 Query menu. See specific commands
comparing with data model, 238–239 Query Time before Prompt preference, 146
connecting to DBMS, 63–64, 149, 155–156 quitting BI/Query, 421
creating, 21, 191–196, 291–312
database resources required, 158
distributing, using BI/Broker Repository, 310–312 R
editing, 145–146, 158, 238–240, 321–323
exporting, 431–432, 445–446 Range command, 381
files, 223, 310 range, results in, 306, 380–381
mailing, 445–446 Rank Data Objects command, 160
nested queries, 316–318 ranking data objects, 158–160
opening, 32 records
per window, 64–67 adding to database, 393–399
462 Index
from another application, 397, 426 See also BI/Query Reports user’s guide
deleting from database, 393–397, 400 repository. See BI/Broker Repository
displaying individually, 396–397 resources needed for queries, 158
modifying in database, 393–400 restarting scheduled jobs, 164
See also rows restricting
recurring scheduled jobs, 359–362 data access. See access to data
reducing network load. See load queries. See qualifying attributes
refresh results, 347–354
data models, 132, 235–240 results
queries, 238–240 calculations on, 390, 421
Refresh Queries command, 238 columns
Refresh Report action, 366 hiding, 382–383, 384
Refresh Tables command, 236 joining, 386–390
Relational Database Management Systems. See DBMSs order, 382–383, 384
relations. See tables in database combining, 339, 383–390
Relationship command, 325 data formats, 245–252
relationships, 21–22 data values. See data values
actual, 22 exporting, 309–310, 411–412, 432–446
aligning, 171–172 files, 190, 196–198, 309–310
attributes associated with, 22 filtering, 338–339
colors, specifying, 201, 204 Form view, displaying in, 396–397
copying, 95 format, 435
creating, 100–102, 147, 324–326 grouping, 332–333
dynamic, 110, 147, 324–326 importing, 397, 426
embedded, 22 mailing, 445–446
icons, displaying, 101 publishing, 370
join conditions, 104–107 qualifying, 323–324
names See also qualifying
displaying, 101 range, specifying, 306, 380–381
specifying, 101 resources required, 158
queries, 291 restricting, 347–354
saving, 325 See also qualifying
Reorder Attributes command, 100 retrieving, 366–367
Reorder Columns command, 382, 383 See also queries
reply tags, logon scripts, 54–55 rows, appending 384–386
Report menu. See specific commands saving, 309–310, 433
reporting problems, 10 sending
reports, 31 buttons, using, 408–413
exporting, 446 to applications, 432–445
mailing, 445–446 to files, 310
scheduling, 365, 366, 368 to tables, 115, 150, 157, 412–413
storing, 31–33 to windows, 410
Index 463
results (continued) Save to Database command, 227
sorting, 377–380 saving
Spreadsheet view, displaying in, 397 combined data models, 127
updating database with, 393, 395–400 data models, 32, 125–127
values, substituting, 251–252 in database, 221–230
Results menu. See specific commands on diskettes, 220
Results Options command, 198, 263, 435 on file server, 219–220
Results Options dialog box, 398–399 passwords, 148
Retrieve command, 39, 312 queries, 32, 147, 307–309, 337–340, 431–432
Retrieve Results command, 366 relationships, 325
retrieving results, 309–310, 433
data models from repository, 32, 39–40, 138 SQL string, 431–432
information from the database. See queries summary information in database, 79
queries from repository, 32, 312 tables in database, 229
results, 366–367 scalar functions, 336
See also load Schedule Query command, 357
reversing qualifications, 296, 319–320 scheduling
revising. See editing actions, 365–374
rows event-based, 362–365
buffering, 153 jobs
See also results canceling, 164
Rows Buffered preference, 153 deleting, 164
Rows Retrieved before Prompt preference, 146 displaying, 162–164
rules, adding, 173 naming, 357–358
Run Command on Server action, 371 once-only, 358–359
Run Query action, 366 pausing, 164
running BI/Query, 37–43 prioritizing, 357–358
recurring, 359–362
restarting, 164
S queries, 33, 146–147, 161–164, 357–374
reports, 365, 366, 368
sans serif type, 173 scripts, 116, 118, 405, 410–411, 414–416
Save As command, 42 buttons, linked to, 417
Save command, 127 OLE Automation, 411, 416–422
Save Data Model permissions, 95, 121 editing, 419
Save Data Model permission, 115 sample code, 419–422
Save Passwords permission, 148 Visual Basic, 418–422
Save Queries permission, 121, 147, 308, 338, 432 SQL, 116, 118–120, 405, 414–416
Save Query command, 195, 265, 308, 317, 338, 340, 432 sending to DBMS, 148, 415
Save Results command, 310, 433 See also logon scripts
Save Split Data Model permission, 126, 127, 145 Search for Help On command, 8
Save To Database permission, 222
464 Index
securing Show SQL String preference, 145
data models, 32, 90 single prompts, 270, 270–271
queries, 32 sliding dates, 252–253
security Sort command, 379
setting, 137–141 Sort Order command, 379
Select Table Icon command, 200 sorting results, 377–380
selecting. See qualifying attributes split data models, 24, 25–27, 40, 126–127, 145, 233–234
Send command, 446 administrator layer, 25, 42–43, 223
Send SQL Script command, 120, 415 buttons, 41, 95, 406
Send SQL Scripts permission, 121, 148 creating, 126–127
sending distributing, 211–212, 219–228, 234
data models using mail, 220–221 editing, 233–234
queries files, 25, 126, 211–212, 233–234
BI/Broker Repository, using, 161–164 ornaments, 41, 95, 198
buttons using, 408–413 passwords, 123–124
to applications, 432–445 reestablishing path between layers, 42–43
to files, 310 saving, 125–127
to tables, 115, 150, 157, 412–413 user layer, 25, 26–27
to windows, 410 splitter bar, super query window, 340
SQL Spreadsheet view, 397
scripts to DBMS, 118, 148, 415 spreadsheets, data values results files, 262–263
string to DBMS, 148 SQL
See also exporting HAVING clause, 332–333
separating operators. See operators
columns in reports, 384 scripts, 116, 118–120, 148, 405, 414–416
qualifications, 302 sending to DBMS, 415
separators, 398 string, 230
for exporting results, 436 editing, 145–146, 158, 321–322
serif type, 173 saving, 431–432
server submitting, 148
distributing data models, 211, 219–220 WHERE clause, 331–332
See also database standard queries, 386, 431
Set Administrator Password permission, 124 saving, 307–309
Set Object Color command, 204 starting
Set Security command, 139, 140, 141, 218 DBMS, 53–57
setting security, on data models, 90 BI/Query, 37–43
sharing static strings, logon scripts, 55
data models, 31–32 stopping. See canceling
queries, 31–32 storing files centrally, 31–33
Show Query command, 299, 322, 340, 342, 344 strings
Show Relationship Names preference, 101, 103 computed, 251–252
Show Relationships preference, 101, 103 SQL. See SQL
Index 465
strings (continued) T
See also data
structuring. See also designing tables in database
Submit Query — To File command, 310, 433 catalog table, using, 190, 192–196
Submit Query — To Table command, 115 columns, hiding, 132–133
Submit Query command, 338, 339, 352, 354 comparing to data model, 235–238
Submit to Named Table permission, 121, 150, 157, 413 creating, 114–120, 150, 157, 192–194, 229, 230, 412–
Submit to Table permission, 115, 150, 412 413
submitting data dictionary, using, 190, 192–196
queries, 408–413, 420 denormalizing, 78
buttons, using, 408–413 GQLMETA, 223, 228, 229, 229–230
to applications, 432–445 GQLMnnnn, 223
to files, 310 GQLQnnnn, 223
to tables, 115, 150, 157, 412–413 GQLRnnnn, 223
to windows, 410 GQLVnnnn, 223
See also sending indexing attributes, 78
subqueries, 316–318 loading, 96–100, 224, 230
in variables, 280 lookup, 77
See also queries names
substituting values, 251–252 displaying, 194
SUM DISTINCT function, 330 specifying, 150, 413
SUM function, 79, 327, 328, 329, 331 organizing data, 79–81
summary information permissions, 225
storing in database, 79 populating, 194
See also aggregate functions prefix, 229–230
summing results, 390 qualifying, 133–135, 157
super queries, 105, 264, 337–338, 383, 386, 408 ranking, 158–160
creating, 337–340 refreshing, 132, 235–240
combining results, 339–340 representing, 20–21, 22
filtering results, 338–339 resources required, 158
editing, 340–347 restricting queries, 133–135, 157
component queries, 342–343 saving, 229
correcting errors, 345–347 sending results to, 115, 150, 157, 412–413
operations, 343–345 updating, 112, 149–150, 194, 393–400
publishing to repository, 337 user access, 131–150
saving, 337–340 TCP/IP, 369
super query window, 340–342 connections, logon scripts, 52–61
See also queries settings
suppressing duplicate information, 330 distributing, 60–61
system permissions. See permissions, BI/Broker editing, 58–60
technical support, 9–10
using the Trace Utility, 10
466 Index
Telnet sessions, TCP/IP connections, 52–57 U
Teradata database, 158, 334
testing Uncombine command, 302
connections, 51–52 Update command, 397, 398
data model, 227 Update Database permission, 121, 149, 394
prompts, 273, 277–279 Update window, 397, 399, 400
text updating
appearance, specifying, 173–174 attributes, 394
buttons, 173–174 data models, 132, 235–240
editor database, 145, 149–150, 393–400
attribute descriptions, 190, 197–198 join conditions, 237–238
data values results files, 262–263 queries, 238–240
files, adding records from, 397, 426 tables in database, 112, 194
importing, 425–426 user
ornaments with,200, 407 data access. See access to data
ornaments, 173–174, 198–200 passwords, 123–124, 148
time requirements, 75–76
calculating in variables, 281 user layer, 25, 26–27, 126, 145, 233–234
including in distributing, 211–212, 219–228, 234
results, 250 files, 25, 26, 40, 126, 211–212, 233–234
limit for queries, 146, 160–161 moving to administrator layer, 233–234
required to return results, 158 passwords, 123–124
scheduling, 358–362 user-defined
titles in attributes, 146, 334–336
design windows, 172 calculations, 330
prompts, 273 operators, 307
tool tips, 8 users, 137–141
Trace Utility, 10
Tracing Enabled command, 10
transferring user layer to administrator layer, 233–234 V
tree list, super query window, 341
Trigger Event action, 371–373 values. See data values
triggers, 251–252, 371–373 Variables command, 282, 286
Trim Relationships command, 352 variables, 31, 280–287
troubleshooting calculating
problems, 10 dates, 281
connections, 51–52 time, 281
tuple. See records containing
two-digit years, converting, 252–253 attributes, 283–284
typefaces, about, 173–174 functions, 284–285
operators, 283–284
placeholders, 283–284
Index 467
variables (continued) accessing using scripts, 411
containing (continued) Hummingbird’s, 10, 11, 14
prompts, 285–286
variables, 281, 285
creating, 281–286 Y
importing, 286–287
qualifying attributes, 280–286 Year-2000 compliance, 252–253
verifying data model design, 124–125
version number of data model, 224, 228
video, importing, 427
View Jobs command, 162
viewing. See displaying
visible. See hiding
Visual Basic, 23, 405
scripts, 411, 416, 418–422
exiting BI/Query, 421
loading data model, 420
methods, 419
objects, 418–419
properties, 419
retrieving results, 421
submitting queries, 420
Visual C++, 416
W
WHERE clause, 331–332
displaying prompt values, 299
in variables, 31, 280
white space, using, 174–175
wildcard in qualifications, 304
WinCLI connections, 334
Window menu. See specific commands
Windows command, 95
windows, appearance in this guide, 7
See also design windows
Word Perfect, using, 417
word processors. See applications
Word, 417, 427
importing records from, 397–399, 426
World Wide Web sites
468 Index