Create Query, Modify Query
These two commands
open the Query Designer, for a new or existing query,
respectively, sort of.
Usage
|
CREATE QUERY [ cFileName | ? ]
[ NOWAIT ] [ SAVE ]
[ AS nCodePage ]
[ WINDOW cDefiningWindow ]
[ IN [ WINDOW ] cContainingWindow |
IN SCREEN | IN MACDESKTOP ]
MODIFY QUERY [ cFileName | ? ]
[ NOWAIT ] [ SAVE ]
[ AS nCodePage ]
[ WINDOW cDefiningWindow ]
[ IN [ WINDOW ] cContainingWindow |
IN SCREEN | IN MACDESKTOP ]
|
Specifying the ? in CREATE QUERY brings up the Save As
dialog, so you can specify a name for the new query. Unlike some
of the other CREATE commands, omitting the parameter in CREATE
QUERY doesn't display the Save As dialog—instead you see Query1
(or whatever number you're up to) and you can name it on the way
out. With MODIFY QUERY, either ? or omitting the file name
entirely brings up the Open dialog.For CREATE QUERY, the Query
Designer opens with the Add Table dialog in front of it. This
lets you add the first table to the query on the way in. (You can
skip that step by pressing ESC or clicking Cancel.)These commands
include a bunch of optional clauses (many of them undocumented)
generally relevant only in programs. Since you can't include the
Query Designer in a distributed application, issuing these
commands in a program isn't terribly useful, unless you are in
one of those unusual installations that has purchased the
development version of Visual FoxPro for each desk. Even if you
could distribute the Query Designer, it's not a very good tool
for end users. It's both too restrictive and too low-level. Get
FoxFire! or another add-on query creation tool instead.If you
really think you need one of the optional clauses, check out
MODIFY COMMAND, which supports them and where they're actually
useful. For more information on using the Query Designer, see
"These Are Not Your Father's Power Tools."And what about that
"sort of" in the introduction above? Turns out if you CREATE
QUERY AnExistingQuery (with SET SAFETY ON), you get asked if you
want to overwrite it. If you say no, it opens up just as if you'd
issued MODIFY QUERY. If SAFETY is OFF, CREATE QUERY
AnExistingQuery just opens it up. Stupidly, in either case, the
Choose Table dialog appears as if it were a new query. If you
MODIFY QUERY ANewQuery, it behaves like CREATE QUERY. Frankly, we
like this behavior because it means we can just use MODIFY QUERY
all the time and forget that CREATE QUERY exists. A typical
interactive session for us involves lots of typing from the
command window, and we like just cursoring up a few lines and
hitting return to repeat a previously entered command. We expect
that FoxPro will "do what we mean, not what we say," and past
versions have allowed us this luxury. CREATE FORM myNewForm means
"create a new one" the first time we issue it, but it means "drag
up the old one" if we say it again. If we really mean to create a
new form, then we'll see that there's already one by the name we
chose, and we'll close it and use a new name. We can't remember
the last time we chose to overwrite an existing form. This is the
behavior in the current product for the CREATE FORM command, and
we expect the same for the CREATE QUERY.It turns out we have
different habits here. One of us habitually uses MODIFY for these
tasks while the other prefers CREATE. If you want to use CREATE,
you'll want SAFETY OFF, so you don't have to keep telling VFP not
to overwrite existing queries (or forms or whatever).Beware. If
you issue MODIFY QUERY for an existing QPR and the Query Designer
can't figure out how to parse the query (most likely because you
changed it by hand), the Query Designer opens with less than your
entire query represented. What you actually see depends on the
query. The QD parses what it can and plonks those items in the
right places, but anything it doesn't understand (and even some
things that it should understand) gets dumped. The View Designer,
which is really just another face for the Query Designer, behaves
pretty much the same way.
Example
|
CREATE QUERY MyNewQuery
|
Back to Table of Contents
Copyright © 2002-2018 by Tamar E. Granor,
Ted Roche, Doug Hennig, and Della Martin. Click for license
.