I've been systematically running queries against my company's Crystal Management server to get an idea of how the system works, and I've found a query the results of which seem anomalous:
"SELECT SI_NAME, SI_KIND, SI_OBTYPE, SI_SCHEDULEINFO.SI_TYPE FROM CI_INFOOBJECTS WHERE SI_OBTYPE != SI_SCHEDULEINFO.SI_TYPE "
produces exactly the same results as:
"SELECT TOP 100 SI_NAME, SI_KIND, SI_OBTYPE, SI_SCHEDULEINFO.SI_TYPE FROM CI_INFOOBJECTS WHERE SI_OBTYPE = SI_SCHEDULEINFO.SI_TYPE "
And it seems this ought to be the opposite of true.
For reference I'm using the COM InfoStore DLL version of the SDK and submitting these using the query method. I'm worried this may indicate the != operator is unreliable in where conditions.