home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
DATABASE
/
QQUERY.ZIP
/
README.DOC
< prev
next >
Wrap
Text File
|
1991-08-01
|
46KB
|
947 lines
For immediate release August 1, 1991
---------------------
- QQuery Version 2.10E -
QQuery for FoxPro 2.0!
Elaborate query management system for FoxBASE+ and FoxPro has
been updated for FoxPro 2.0. QQuery helps user create, store,
copy, edit, and replay logical expressions to use with existing
reports and/or processes. Includes context sensitive on-line
help system. Registered users ($10) receive source code and
unlimited runtime rights.
The source code of QQuery has been restructured for ease of
reading and maintenance, correct RETURN usage, complete
elimination of all EXIT and LOOP statements, and compatibility
with FoxPro 2.0 as well as FoxBASE+ 2.10 and FoxPro 1.02.
Release 2.10E does not change or add any QQuery features. Minor
enhancements include improved error checking in the editor and
much improved default screen colors.
QQuery is available in the Fox Software data library 6 in any of
the following configurations:
QQFBAS.ZIP (FoxBASE+ 2.10 compile QQUERY.FOX plus docs)
QQFPR1.ZIP (FoxPro 1.02 compile QQUERY.FXP plus docs)
QQFPR2.ZIP (FoxPro 2.0 compile QQUERY.APP plus docs)
Each file is about 100k and requires PKUNZIP to unpack after
downloading.
Carlos Berguido
1722 Capella Court
Petaluma, CA 94954
(707) 762-9067
For immediate release May 19, 1990
---------------------
- QQuery Version 2.10D -
QQuery for FoxPro!
Elaborate query management system for FoxBASE+ and now for
FoxPro! Helps user create, store, and replay queries to use with
your reports and/or processes. Includes context sensitive on-
line help system. Registered users ($10) receive source code and
unlimited runtime rights.
Version 2.10D adds modifiable related file field names pop up
menus in both the FoxBASE+ and FoxPro versions. QQuery for
FoxPro is comparable in appearance, navigation, and function with
QQuery for FoxBASE+ while taking advantage of FoxPro's 25 work
areas and 254 field data files.
New features in version 2.10D:
1. Pop up menus are available at the touch of the left and
right arrow keys for the field names and sample data of ANY
OR ALL OTHER OPEN WORK AREAS.
2. User definable exclusion of Help, Error and any other files
you specify from the field names pop up menus.
3. For greater control over the contents of field names pop up
menus, a new utility program is supplied, QQDMEDIT.PRG, a
program for modifying any existing QQuery QDM memory file.
4. The left and right arrow keys now are used to either exit
pop up menus with the highlighted choice OR to scan parallel
pop up menus.
5. The same source code provided when you register may be used
to compile QQuery to run under either FoxBASE+ or FoxPro
versions 1.01 or later.
Carlos Berguido
1722 Capella Court
Petaluma, CA 94954
(707) 762-9067
For immediate release March 23, 1990
---------------------
- QQuery Version 2.10C -
By popular demand, the following policies are established for
QQuery, the logical expression builder and query manager for IBM
FoxBASE+. QQuery is a 3rd party shareware product available for
downloading in the library of the Fox Software forum on
Compuserve, GO FOXFORUM.
1. UNLIMITED RUNTIME. A single registration fee licenses
you to include the QQuery modules in any application
you develop and to distribute any number of copies of
these applications with no royalties whatsoever.
2. The registration fee has been reduced to $10 effective
immediately. You will receive one 5 1/4" diskette
(360k format) containing the QQuery program for
FoxBASE+, a README file, and source code.
3. SOURCE CODE optimized for FoxBASE+ supplied on disk
when you register. As a registered user, you are
licensed to:
a. Modify the code as desired to optimize QQuery for
your applications.
b. Modify and re-compile all or part of QQuery as
desired to optimize QQuery to run under FoxPro
and/or other platforms.
c. Provide QQuery source code to your clients that
require source code, as long as you provide a
notice that use of QQuery other than from within
your application requires registration.
4. Unconditional 30 day money back guarantee.
Release 2.10C does not change or add any QQuery features. The
purpose of this release is to incorporate the new policies in the
source code and screen notices only.
Carlos Berguido
1722 Capella Court
Petaluma, CA 94954
(707) 762-9067
08/01/91 Q Q U E R Y (tm) Page i
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- TABLE OF CONTENTS -
QUERY MANAGEMENT FOR FoxBASE+ and FoxPro . . . . . . . . . . 1
REGISTRATION NOTICE . . . . . . . . . . . . . . . . . . . . 1
FEATURES AND BENEFITS . . . . . . . . . . . . . . . . . . . 2
CAUTION: MULTI-USER . . . . . . . . . . . . . . . . . . . . 4
ONE OPEN DATA FILE WORK AREA NEEDED . . . . . . . . . . . . 4
QQUERY FILE DESCRIPTIONS . . . . . . . . . . . . . . . . . . 4
HOW QQUERY CREATES AND USES FILES . . . . . . . . . . . . . 5
QDB & QDX FILES: QUERY DATA FILES AND INDEXES . . . . . 5
QDM FILES: FIELD NAME POP UP MENUS . . . . . . . . . . 6
MULTIPLE WORK AREA FIELD NAME POP UP MENUS . . . . . . 6
EXCLUDING FILES FROM FIELD NAMES POP UP MENUS . . . . . 7
CUSTOM FIELD NAMES POP UP MENUS . . . . . . . . . . . . . . 8
MEMORY REQUIREMENTS . . . . . . . . . . . . . . . . . . . . 9
QQUERY MEMORY VARIABLES . . . . . . . . . . . . . . . . . . 10
CHANGING SCREEN COLORS . . . . . . . . . . . . . . . . . . . 11
PROCEDURE FILES . . . . . . . . . . . . . . . . . . . . . . 13
READ ONLY ACCESS . . . . . . . . . . . . . . . . . . . . . . 14
NOTICE REGARDING QQUERY SOURCE CODE . . . . . . . . . . . . 15
INSTALLATION . . . . . . . . . . . . . . . . . . . . . . . . 16
08/01/91 Q Q U E R Y (tm) Page 1
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
QUERY MANAGEMENT FOR FoxBASE+ and FoxPro
QQuery was developed using the database language and extensions
known as FoxBASE+ and FoxPro from FOX SOFTWARE, INC. of
Perrysburg, Ohio. QQuery was created by a 3rd party, independent
developer who is not affiliated with FOX SOFTWARE, INC. FOX
SOFTWARE, INC. is not responsible for products that are developed
using their language products. If you need help or information
regarding QQuery, please direct your inquiry to the author and
copyright holder of QQuery whose name appears below.
REGISTRATION NOTICE
QQuery is not public domain or free software. If you
continue using QQuery after a 30 day trial period, you
must register for a license to use QQuery. A single
registration gives you royalty free unlimited runtime
rights for applications you develop that use QQuery.
To register, send $10 (Ten dollars U.S.) directly to the
author: (30 day unconditional money back guarantee)
Carlos Berguido Telephone:
1722 Capella Court (707) 762-9067
Petaluma, CA 94954
Please include your name, address, and QQuery version
number. You will receive the latest version of QQuery
INCLUDING ALL SOURCE CODE on a 5 1/4 inch diskette.
The source code is designed to make navigating QQuery as
comparable as possible whether it is run under FoxPro or FoxBASE+
except that the Enter key may also be used to exit the query
Browse when running under FoxPro only.
If you have not installed QQuery, please read the last page of
this document regarding QQuery installation.
The context sensitive Help system in the QQuery program is
intended to provide step by step instruction in the operation of
QQuery. In addition, you are urged to experiment and seek other
sources of information in the science and art of creating and
combining logical expressions.
FoxBASE+ and FoxPro are registered trademarks of FOX SOFTWARE,
INC.
08/01/91 Q Q U E R Y (tm) Page 2
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- FEATURES AND BENEFITS -
The information contained in this document is provided for system
developers and anyone interested in some of the technical ins and
outs of QQuery.
FEATURE BENEFIT
Stores queries in - Allows quick access to repeatedly used
a database. queries.
- Allows query creation and auditing by one
group and use by others.
Each query has a - Systemizes report headings.
name and a - Makes it easy to locate and reuse queries.
description of up
to 55 characters.
More than just SET - QQuery will SET FILTER up to the 160
FILTER. character limit on filter expressions.
After exiting, the user can simply issue
commands and only those records that meet
the query condition will be included.
- Also, at any time after exit with a query,
the user has access to memory variables for
the query name, description, and the up to
240 character condition itself for use in a
FOR phrase in commands such as COPY, INDEX,
LIST, and REPORT.
- Program developers can call the QQuery
procedure from inside their procedure files
and take appropriate action in their
programs depending on what is returned is
the memory variables on QQuery's return.
QQuery editor - Allows flexibility in the way queries such
allows multiple as "Guests who stay for 10 days or more"
field names and/or are stated:
functions on both DATEOUT-DATEIN is after or matches 10
sides of each as well as:
equation. DATEOUT is after or matches DATEIN+10
QQuery editor uses - User can see what options are available for
pop-up menus. field names, functions, operators, nesting
parenthesis, and connectors.
- Saves hundreds of keystrokes, saves time,
avoids misspellings.
08/01/91 Q Q U E R Y (tm) Page 3
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
FEATURE BENEFIT
Contains many of - User can easily make a query insensitive to
the most popular UPPER/lower case by choosing UPPER from a
functions on pop pop-up menu: UPPER(CITY)='PERRYSBURG"
up menus. - Make a query that ignores the last four
digits of a 9 digit zip code and enter
multiple random zips in one or more
condition lines:
LEFT(ZIP,5) is contained in "85718,85740"
Field names pop up - Makes it easy to locate the correct field
has sample data name because the user can see a sample of
from user the data. Starting with version 2.10D, a
database. field names pop up menu is available at the
touch of a key for every open work area.
Self contained - QQuery allows creating, listing, using,
system. editing, renaming, deleting, and packing
queries, all from familiar Lotus 1-2-3
style menus. Lotus and 1-2-3 are
registered trademarks of Lotus Development
Corporation.
Context sensitive - The user does not have to know about proper
auto-conversion of syntax. For example, if QQuery is
user expressions expecting the user to enter a date
to correct syntax. expression and the user just enters 1/1/89,
it will automatically be converted to
CTOD("1/1/89"), the correct syntax.
- QQuery searches the environment for field
names and variables to test each
constant/expression. If the expression
tests ok, QQuery will accept it as entered.
If the expression doesn't make sense,
QQuery will either put it in quotes, or
convert it with VAL or CTOD, depending on
whether a character, numeric, or date
expression is expected.
Permits queries - Point to field names of files in other work
into other work areas in pop up menus whenever these fields
areas to related in a related file are important to the
files. query. For example, to find all the
"Orders of $10,000 or more to Ohio
customers":
AMOUNT is after or matches 10000 .AND.
customer->STATE matches "OH"
08/01/91 Q Q U E R Y (tm) Page 4
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- CAUTION: MULTI-USER -
QQuery has never been tested in a multi-user environment. There
are no LOAD, CALL, or RUN commands in QQuery to worry about.
Nonetheless, no attempt was made to manage collisions that might
occur in a multi-user setting. If you would like to see a multi-
user version of QQuery developed, please contact the author. In
the meantime, please treat QQuery as you would any program that
has only been tested in a single user environment.
- ONE OPEN DATA FILE WORK AREA NEEDED -
QQuery needs only one open work area and will find ANY unused
work area to USE for files it manages. If all work areas are in
USE when the program is called, QQuery will advise you that such
is the case and return without executing.
- QQUERY FILE DESCRIPTIONS -
One of the following files is needed to run QQuery:
FILENAME STRUCTURE CONTENTS
---------- --------- ------------------------------------------
QQUERY.FOX FOX FoxBASE+ 2.10 compiled procedure file , OR
QQUERY.FXP FXP FoxPro 1.02 compiled procedure file, OR
QQUERY.APP APP FoxPro 2.0 compiled application file
The following files are created by QQuery if they are not present
in the environment:
FILENAME STRUCTURE CONTENTS
---------- --------- ------------------------------------------
QQUERY.QST DBF Empty database structure used to make new
alias.QDB's
QQUERY.QSM MEM Memory variables for screen colors and
feature options
alias.QDB DBF Database of queries for user data file
named <alias>
alias.QDX IDX Index for above, key field is QDNAME
alias.QDM MEM An image of the alias structures of all
open files with sample data
?????? DBF Occasionally a FOX generated unique
filename is used and subsequently erased,
function SYS(3).
The 3 alias files are not actually named "alias". "alias" is
used above to indicate that the left hand portion of the filename
is derived from the alias of your data file that has been USEd in
the current work area.
08/01/91 Q Q U E R Y (tm) Page 5
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- QQUERY FILES (continued) -
The extension names QST, QSM, QDB, QDX, and QDM were chosen so
that QQuery would not conflict with your existing file names and
so you could identify the function of each QQuery file by name.
- HOW QQUERY CREATES AND USES FILES -
Each time QQuery is started, it looks to see if a data file is in
USE in the currently selected work area. If not, it presents a
directory of DBF files in the current directory and prompts you
to enter the name of one. If none is entered, QQuery returns
without executing further.
Once QQuery is given a file in the current work area, it checks
the current directory for a filename consisting of the alias as
the left hand part of the file name and QDB as the right hand
filename extension.
For example, if ORDERS is the alias of the data file in the
current directory, QQuery will search for a file named
ORDERS.QDB. If QQuery can't find the QDB file, it will create
one by copying the structure of the file QQUERY.QST to
ORDERS.QDB. (If QQUERY.QST is not found in the current directory
or path, QQuery will create a new QQUERY.QST in the current
directory.) The single ORDERS.QDB file can store hundreds of
queries to ORDERS and to any related files in unselected open
work areas.
- QDB & QDX FILES: QUERY DATA FILES AND INDEXES -
In this example where ORDERS is the current work area alias,
QQuery requires two other files. ORDERS.QDX is the index file
for ORDERS.QDB. If the index file is not present, QQuery will
create one.
alias.QDB Fields:
-----------------
QDNAME C 8 The query name (and index key)
QDESCRIPT C 55 The plain language description of the query
(use for report headings)
QDLEDIT D 8 The last date edited (from the system date)
QDCODE C 254 The coded condition used by the query
editor
QDQUERY C 240 The database language condition translated
from the code
08/01/91 Q Q U E R Y (tm) Page 6
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- QDM FILES: FIELD NAME POP UP MENUS -
The third file in this example is ORDERS.QDM. This memory file
is used for the pop up menus of field names and sample data from
the ORDERS data file.
Starting with version 2.10D of QQuery, field names and sample
data from every other work area that was in use when the QDM file
was created are also stored in this file. QDM files are always
automatically created whenever there is no QDM in the current
directory or in a PATH that has the same name as the alias of the
data file currently selected.
For example, if you have a data file alias ORDERS in use in the
current work area and are starting QQuery for the first time with
ORDERS, QQuery will create a memory file named ORDERS.QDM
containing a list of all the field specifications of ORDERS
(except memo fields) together with a portion of the data that is
in the current ORDERS record when you start QQuery.)
NOTE: To save disk space, when you have a group of several files
open in various work areas, make sure you select the master file
for that group every time before starting QQuery. That way, only
one QDM file will ever be used for that group of files.
- MULTIPLE WORK AREA FIELD NAME POP UP MENUS -
Starting with version 2.10D of QQuery, whenever you see the field
names pop up menu for the main file, you can also see additional
field name pop ups for all other work areas that were open when
the QDM file was created by using the left and right arrow keys.
This feature of multiple work area field name pop up menus is
enabled in QQuery by having "/FLDPOP" in the QQSCOPTION variable
in the QQUERY.QSM system file. This is the default when you
install version 2.10D. The only reason not to enable this
feature is if you run out of memory and you don't want to
increase MVARSIZ in the CONFIG.FX or CONFIG.FP file. The extra
pop-up lists require on average 45 bytes per field name.
QDM files created by earlier versions of QQuery are completely
compatible with version 2.10D. In fact, if you use your existing
QQUERY.QSM file that has QQSCOPTION="" with version 2.10D, QQuery
will generate a field name pop up for the main file only, just as
it did in earlier versions. If you wish to add the other work
area pop up menus to an application that already has one or more
QDM files, first install version 2.10D of QQuery. Delete the
existing QDM file. Open up all the related files in all the work
areas you need and open the main file. Start QQuery. A new
<alias>.QDM with all the work area field names and sample data
will be created automatically.
08/01/91 Q Q U E R Y (tm) Page 7
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
QQSCOPTION is a variable in the QQuery system memory file
QQUERY.QSM. To enable field pop up menus for all open work
areas, have the QQSCOPTION variable include the string "/FLDPOP"
(quotes not needed). That is the default when you install
version 2.10D. To modify any existing QQUERY.QSM file:
RESTORE FROM qquery.qsm
qqscoption = '/FLDPOP'
SAVE TO qquery.qsm
To save memory, if you do NOT want QQuery to create multiple work
area pop ups QDM files, substitute: qqscoption = ''
- EXCLUDING FILES FROM FIELD NAMES POP UP MENUS -
You may not want to see field name pop ups for ALL the open work
areas, such as HELP and ERROR files. QQSCOPTION can contain a
list of file aliases to exclude from the fields pop up menus. For
example, to include all files from all work areas EXCEPT a help
file and an error file, assuming the alias of each is HELP and
ERROR respectively, simply list the alias names separated by
commas after the /FLDPOP string in the QQSCOPTION variable:
qqscoption = '/FLDPOP:HELP,ERROR*'
Don't forget the colon (:) after /FLDPOP and the asterisk (*)
after the last file name. If you leave out the colon and the
asterisk, any listed files will NOT be excluded.
If you want to change the Samples or if you change the Structure
of this data file, erase the file that begins with your data file
name and ends with the extension .QDM. Then, the next time you
start QQuery, have your data files positioned at records that you
want to use for the pop up sample data. Start QQuery and it will
create new field names pop up menus. You may also use QQDMEDIT
described on the next page to modify existing QDM files.
If you change field names or delete fields altogether, you will
have to adjust any query condition that uses the old field name.
Each time you select a query from the LIST function, QQuery makes
a quick check to see if that all field names and variables in the
condition can still be found in the environment. If not, you
will be offered the choice of editing the query to correct it or
going back to the top menu. QQuery will not permit you to USE a
query that contains invalid statements.
08/01/91 Q Q U E R Y (tm) Page 8
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- CUSTOM FIELD NAMES POP UP MENUS -
QQDMEDIT.PRG is a free utility program provided that lets you
customize existing field names pop up menus (QDM files):
* Modify the default field names pop up menu title.
* Change the content of any field name line. Some users are
replacing sample data with field descriptions.
* Add new lines.
* Delete existing lines.
* Add new children files and fields.
Print the QQDMEDIT.PRG file for details, the following is an
overview.
Anytime after QQuery creates a QDM file, you make change it by
entering:
DO QQDMEDIT
at either the FoxBASE+ dot prompt or in the FoxPro command
window.
You will see a list of any existing QDM files in the current
directory. Enter the name of the QDM file you want to modify.
The QDM file will be automatically converted to a text file and
presented to you for full screen editing using the built in
FoxBASE+ or FoxPro editor.
After making changes, save the changes with the Ctrl-W key or
abandon any changes with the Escape key. The field names
information will be automatically converted back to QDM format,
ready to use with QQuery.
08/01/91 Q Q U E R Y (tm) Page 9
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- MEMORY REQUIREMENTS -
Use the information in this section only if you are getting the
Fox error message number 21:
"String memory variable area overflow"
when you run QQuery with your biggest combination of data files.
QQuery uses lots of memory variable space for pop up menus. As a
result, you may run out of room in memory when running QQuery
with the Fox default memory variable size of 6,000 bytes.
QQuery and Fox could start to run out of memory if you have many
field name pop up menus with many fields, all available at once.
Each menu item varies in memory requirement depending on the
field type and contents. In practice, I have measured an average
of 45 bytes per field name pop up item. To allow a margin for
error, use 50 bytes per menu item.
Fox uses an item named MVARSIZ in a CONFIG file to permit you to
increase the amount of memory allocted to variables. (CONFIG.FX
for FoxBASE+, CONFIG.FP for Foxpro).
If you get the "String memory variable area overflow" error
message, try increasing MVARSIZ in the CONFIG file by 50 bytes
for each field over 25 plus whatever you need in any program that
calls QQuery. For example, if your related data files have
between them 145 fields, increase memory by (145-25)*50=6000
bytes.
If you need to change the memory allocation, see the INSTALLATION
section at the end of this document about changing the CONFIG
file. You will want to be sure it contains:
MVARSIZ=n
where n is any number greater than the Fox default of 6. Each
increment represents 1,000 bytes, so MVARSIZ=12 would give you
12,000 bytes for memory variables.
08/01/91 Q Q U E R Y (tm) Page 10
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- QQUERY MEMORY VARIABLES -
QQuery does NOT require the use of PARAMETERS. This was done so
that QQuery would be easy to use from the command level. The
following memory variables are PUBLIC on return from QQuery:
qqname C The query nickname, trimmed
qqdesc C The user description, trimmed
qquery C up to 240 characters for the condition used
by calling program for subsequent SET
FILTER TO, FOR, or WHILE phrases, trimmed
These strings will return as nuls if the user QUITs so that any
program you DO QQuery from can take appropriate action. If you
are a developer with a few lines of code you can spare, you might
try these lines in your programs after DO QQUERY
To combine the name and description for reports:
qqdesc = qqname + ' - ' + qqdesc
To test for long conditions:
IF LEN(qquery) > 210 && between 210 and 240, BIG
COPY TO x FOR &qquery
USE x ALIAS <your data file name>
ENDIF
... do report expecting an ALIAS of <your data file name>
USE
ERASE x.dbf
If the condition is 240 characters, the COPY TO x FOR &qquery
command will expand to the maximum 254 characters allowed in a
FoxBASE+ command line. (NOTE: FoxPro increased the limit to 1024
characters per command line)
SET FILTER TO has a limit of 160 characters. That doesn't mean
that queries need be limited to that length. A command that
combines sorting and filtering in one step is:
INDEX ON <your sorting expression> TO <filename> FOR &QQUERY
Make sure you test the LENgth of the QQUERY memory variable
before issuing commands in your programs. Remember the limit of
characters in any command line means AFTER macro expansion. If
the condition is too big for one method, you can always resort to
copying to a temporary file as in the above IF ENDIF example.
08/01/91 Q Q U E R Y (tm) Page 11
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- CHANGING SCREEN COLORS -
There is a wide range of color monitors out in the world, and
what is bright yellow on one monitor is dark brown on another.
This section is about changing screen colors from the default
values of QQuery to something more to your liking.
QQuery will create a memory file QQUERY.QSM if it is not present
in the environment with the following default values for screen
colors.
QQUERY.QSM DEFAULT SCREEN COLOR MEMORY VARIABLES:
Mono normal . qqscrnnrml = "W/N,N/W,N"
editor fields . qqscrnbold = "W+/N"
blinking messages . qqscrnblnk = "W+*/N"
help border . qqscrnhlpb = "N/W"
help text . qqscrnhlpt = "W/N"
Color normal . qqscolnrml = "W+/B,W+/BG,B"
editor fields . qqscolbold = "GR+/B"
blinking messages . qqscolblnk = "W+*/B"
help border . qqscolhlpb = "B/W"
help text . qqscolhlpt = "W+/BG"
Options . qqscoption = "/FLDPOP"
Whenever QQuery is started with this file present, QQuery will
use the values for screen colors that are in the file. This
means you can substitute different values for screen colors and
QQuery will use them. See the FIELD NAMES POP UP MENUS section
of this documentation for info about the QQSCOPTION variable.
On a color monitor, the default color for normal display in
QQuery is determined by the variable QQSCOLNRML, which by default
is:
" W+/B , W+/BG , B "
(Normal: white+ on blue, Gets: white+ on cyan, Border: blue)
The abbreviations for all the colors are listed under the SET
COLOR TO command in your database manual of Commands and
Functions.
08/01/91 Q Q U E R Y (tm) Page 12
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- CHANGING SCREEN COLORS (continued) -
If you want to change any of the colors in QQUERY, you need to
change the contents of QQUERY.QSM. At the FoxBASE+ dot prompt or
in the FoxPro command window, enter:
RESTORE FROM qquery.qsm
DISPLAY MEMORY
At this point you should see a list including the following:
qqscrnnrml Pub C "W/N,N/W,N"
qqscrnbold Pub C "W+/N"
qqscrnblnk Pub C "W+*/N"
qqscrnhlpb Pub C "N/W"
qqscrnhlpt Pub C "W/N"
qqscolnrml Pub C "W+/B,W+/BG,B"
qqscolbold Pub C "GR+/B"
qqscolblnk Pub C "W+*/B"
qqscolhlpb Pub C "B/W"
qqscolhlpt Pub C "W+/BG"
qqscoption Pub C "/FLDPOP"
Then, to change to: Normal text: blue on cyan,
Enhanced: black on white,
Border: cyan
Enter:
qqscolnrml = 'B/BG,N/W,BG'
Finally, save your changes to disk.
SAVE TO qquery.qsm
By the way, if your new colors get way out of hand and you want
to start over, just erase the QQUERY.QSM file from the disk.
QQuery will create a new QQUERY.QSM with the default colors the
next time you start QQuery.
08/01/91 Q Q U E R Y (tm) Page 13
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- PROCEDURE FILES -
FoxPro does not require QQuery to SET PROCEDURE TO and therefore
nothing special is required to invoke QQuery from any
application, simply include "DO qquery" in your application.
However, when running QQuery with FoxBASE+, please read this page
to see if the information applies to your situation:
QQuery is a PROCEDURE file consisting of over 20 procedures
compiled encrypted by FOXPCOMP. QQuery is useful at the dot
prompt. However, the intended use of QQuery is as a subroutine
in the reporting sections of large database application procedure
files.
For example, in the middle of a reporting program, you will DO
QQuery after choosing the report needed and before running it.
You can do that with QQuery, even if the calling program is a
procedure in an open procedure file. However, QQUERY NEEDS YOU
TO SUPPLY IT WITH THE NAME OF THE PROCEDURE FILE THAT CALLS
QQUERY. If you do not, QQuery will not re-open your procedure
file when it is ready to return and your program will stop.
So, before you call QQuery, create a memory variable QCALLER with
the name of the procedure file that will be calling QQuery.
Please note that the FoxBASE+ SYS(16) function returns the name
of the current program or module, not necessarily the name of the
procedure file containing the program or module.
As an example, if you have a procedure file named MAIN.PRG that
will be DOing QQuery, the following is recommended at the
beginning of the procedure file MAIN.PRG:
SET PROCEDURE TO main
qcaller = 'main'
DO ...... && the name of your top procedure
PROCEDURE ...... && the name of your first procedure
And please remember, if you are using FoxPro, none of these extra
steps are needed!
08/01/91 Q Q U E R Y (tm) Page 14
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- READ ONLY ACCESS -
For quality control reasons, you may want one user to create and
modify all queries using QQuery and all other users to have "READ
ONLY" access to the query files for generating reports. Source
code for a program for query read only, QQREAD.PRG, is included
on the QQuery distribution diskette, ready for you to customize.
To enhance QQREAD.PRG, use your own error trapping routines to
provide tests for the existence of file <alias>.QDB, index file
<alias>.QDX, that there is at least 1 undeleted record in the
file, and that there is at least one unused work area available.
Have the <alias> user data file (not the query data file) open in
the currently selected work area, and be sure that DELETED is SET
ON. You may also wish to add Help screens.
QQREAD.PRG is small enough to be bound with your other programs
in your main procedure file.
NOTES:
08/01/91 Q Q U E R Y (tm) Page 15
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- NOTICE REGARDING QQUERY SOURCE CODE -
QQuery is a copyrighted work by Carlos Berguido. When you
register you are granted the right to modify the QQuery source
code to optimize QQuery for your applications.
As a registered user, you may choose to modify the source code to
eliminate display on the screen of the copyright notice and/or
the registration notice in applications you develop that use
QQuery. You are granted that right as a registered user.
However, you are NOT granted the right to delete either notice
from the source code. You may write around the notices or
comment them out so that they do not display but you may not
erase either notice from the source code.
Any copies of QQuery source code that you provide with your
applications must contain the QQNOTICE.PRG module, and the
copyright notice in the QQSTART.PRG module without any
alterations to the content of any notice. Failure to provide
these notices with the source code is a violation of the author's
copyright. Thank-you for your cooperation.
ANY USE OF QQUERY OTHER THAN FROM WITHIN THE APPLICATION PROGRAMS
OF REGISTERED USERS REQUIRES REGISTRATION.
08/01/91 Q Q U E R Y (tm) Page 16
(c) 1989,1991 by Carlos Berguido - Vers 2.10E INFORMATION
- INSTALLATION -
These instructions assume that if you received QQuery in a one
compressed "ZIP" file, that you have extracted the QQuery files
onto a floppy diskette. Please choose one of these options:
OPTION 1 - QQuery and your data files in the same directory:
Insert the QQuery diskette in drive A. In this option, the
QQuery program and all supporting files are installed in the same
directory as your data files. If, for example, you keep your
data in a subdirectory C:\FOX\MYDATA, get to DOS and enter:
C:
CD \FOX\MYDATA
A:INSTALL
The QQuery system and demo files will be copied into your data
directory. When you are at the place to enter Fox commands
working with your data files, you can start QQuery by entering
either:
DO QQUERY && QQuery directly
DO QQDEMO && The demonstration
OPTION 2 - Run QQuery from any directory by using PATH:
If you have more than one data subdirectory, and you want to run
QQuery with the data in any of them, you can repeat the
installation described above for each directory. However, if you
would like to save disk space and make it easier to upgrade
QQuery, you should install QQuery in only one place. In this
example, QQuery will be installed in a subdirectory below the
standard Fox subdirectory (change \FOX to \FOXPRO below if that
is where you keep FoxPro):
C:
MD \FOX\QQUERY
CD \FOX\QQUERY
A:INSTALL
A subdirectory C:\FOX\QQUERY will be created on your hard disk
and the QQuery files will be copied into it. Now, each time you
start Fox, Fox needs to know where QQuery exists on your hard
disk. Use MODIFY COMMAND or any text editor to create or modify
the \FOX\CONFIG.FX (FoxPro uses CONFIG.FP) file and add the line:
PATH = C:\FOX\QQUERY
However, if there is already a PATH statement, just add
;C:\FOX\QQUERY to the end of the existing PATH statement. See
"Fine Tuning" and the SET PATH TO command in the Fox User Guide
for more information. After doing that, restart Fox. To use
QQuery, enter either DO QQDEMO or DO QQUERY or use DO QQUERY in
your application programs.