Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Parameterized View
Message
From
06/11/1997 21:12:35
 
 
To
06/11/1997 16:22:01
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00058732
Message ID:
00058773
Views:
30
>With the view parameters set as follows:
>
>vp_Active = .T.
>vp_idnum = '*'
>vp_last = 'A%'
>vp_first = '*'
>vp_middle = '*'
>
>shouldn't the following view definition return only records that have
>lastname beginning with 'A' and empty(disdate)?   It doesn't - it returns
>records that have lastname beginning with 'A' regardless of disdate.
>Am I missing something simple?
>
>SELECT Clients.cidnum, Clients.clastname, Clients.cfirstname,;
>  Clients.cmiddlename, Clients.cadmdate, Clients.disdate;
>FROM cms!clients;
>WHERE Clients.cidnum LIKE ?vp_idnum;
>   OR (UPPER(Clients.clastname) LIKE UPPER(?vp_last));
>   OR (UPPER(Clients.cfirstname) LIKE UPPER(?vp_first));
>   OR (UPPER(Clients.cmiddlename) LIKE UPPER(?vp_middle);
>   AND EMPTY(Clients.disdate) = ?vp_active)

Actually, it's the middle name that is ANDed with the active field. Since the middle name comparison allways return .F., the result of the AND is .F. So you get all records that have last name beginning with "A".

Try the following:
SELECT Clients.cidnum, Clients.clastname, Clients.cfirstname,;
  Clients.cmiddlename, Clients.cadmdate, Clients.disdate;
FROM cms!clients;
WHERE Clients.cidnum LIKE ?vp_idnum;
   OR (UPPER(Clients.clastname) LIKE UPPER(?vp_last));
   OR (UPPER(Clients.cmiddlename) LIKE UPPER(?vp_middle));
   OR (UPPER(Clients.cfirstname) LIKE UPPER(?vp_first);
   AND EMPTY(Clients.disdate) = ?vp_active)

HTH
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform