>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)
It looks monstrous anyway, but I would try first adding parenthesis:
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)
Edward Pikman
Independent Consultant