>>>I have this SQL:
>>>
>>>
>>>SELECT cname, tdatetime, ;
>>> IIF(EMPTY(cPickup), cPaddr, cPickup) AS cPickup, ;
>>> IIF(EMPTY(cDropoff), cDaddr, cDropoff) AS cDropoff, ;
>>> IIIF(cStatus, "CXL", "NR", "NS", "Canceled", "Not Ready", "No Show") AS cstatus ;
>>> FROM Trip_History ;
>>> INTO CURSOR vtrips ;
>>> WHERE (INLIST(cStatus, "CXL", "NR", "NS")) AND BETWEEN(TTOD(tdatetime), pdBegin, pdEnd) ;
>>> ORDER BY cStatus, tdatetime
>>>
>>>
>>>"IIIF()" is a function I made that returns one of the last three options. VFP is giving me a "data type mismatch" error on the IIIF line. I've used UDFs in SQL before without a problem, and I think I might have used this IIIF() before. I don't understand why it's giving me an error. IIIF.prg is in the path, so I know it can find it. And the function works on its own.
>>>
>>>Any ideas?
>>>
>>>Thanks,
>>>
>>>-Michelle
>>
>>Add WAIT WINDOW cParm1 NOWAIT to IIIF code, run and bomb it again, and look what you have in wait window.
>
>It's "NR" which is what it should be.
>
>Is that good or bad? :)
>
>Thanks,
>
>-Michelle
I don't know. If it bombs, so it's not very good. There are two places which can fire type mismatch: either function code itself (I hope you have very simple code inside) or SQL, when let say IIIF returns Integer (or maybe .NULL. ?) for the first record and tries to return Character for the next one.
Edward Pikman
Independent Consultant