Microsoft KB Archive/293400

= ConvertExprToSqlFltrStr Method Returns Error for Some XML Expressions =

Article ID: 293400

Article Last Modified on 10/21/2002

-

APPLIES TO


 * Microsoft Commerce Server 2000 Standard Edition

-



This article was previously published under Q293400



SYMPTOMS
When you use the ConvertExprToSqlFltrStr method from the Component Object Model (COM) object, Commerce.ExprFltrQueryBldr, an unexpected error occurs for some Extensible Markup Language (XML) expressions:

Err.Number: -2147467259

Err.Description: Operator used in not of defined type



CAUSE
This error is caused by parsing problems in the Commerce.ExprFltrQueryBldr COM object.



RESOLUTION
To resolve this problem, obtain the latest service pack for Commerce Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

297216 INFO: How to Obtain the Latest Commerce Server 2000 Service Pack



STATUS
Microsoft has confirmed that this is a problem in Microsoft Commerce Server 2000. This problem was first corrected in Commerce Server 2000 Service Pack 1.



MORE INFORMATION
ExprFltrQueryBldr.ConvertExprToSqlFltrStr is used to convert an expression from XML to a SQL Server filter query string. For addition information, see the Microsoft Commerce Server 2000 Documentation.

The following parsing issues are corrected by this hotfix:   Not all operators for string data type are implemented:

 Operator &quot;not-equal&quot; does not work for data type &quot;string&quot; Operator &quot;not-begins-with&quot; does not work for data type &quot;string&quot; Operator &quot;not-contains&quot; does not work for data type &quot;string&quot;

Example: <CLAUSE OPER=&quot;not-equal&quot;> <Property ID=&quot;UserObject.GeneralInfo.logon_name&quot; TYPE=&quot;STRING&quot;/> <IMMED-VAL TYPE=&quot;string&quot;>joe</IMMED-VAL> </CLAUSE> </li>  Operator &quot;in&quot; does not result in a correct SQL Server filter query string with numeric data types.

Example: <CLAUSE OPER=&quot;in&quot;> <PROPERTY ID=&quot;User.Age&quot; TYPE=&quot;number&quot; /> <IMMED-VAL TYPE=&quot;number&quot; MULTIVAL=&quot;true&quot;> <VALUE>20</VALUE> <VALUE>30</VALUE> </IMMED-VAL> </CLAUSE> </li>  Multivalued expressions fail if the MULITVAL attribute is not lowercase.

Example: <CLAUSE OPER=&quot;in&quot;> <PROPERTY ID=&quot;UserObject.GeneralInfo.logon_name&quot; TYPE=&quot;string&quot; /> <IMMED-VAL TYPE=&quot;string&quot; MULTIVAL=&quot;TRUE&quot;> <VALUE>joe</VALUE> <VALUE>jane</VALUE> </IMMED-VAL> </CLAUSE> </li>  Expressions fail if data type attribute is not lowercase.

Example: <CLAUSE OPER=&quot;is-defined&quot;> <Property ID=&quot;UserObject.GeneralInfo.email_address&quot; TYPE=&quot;STRING&quot;/> </CLAUSE> </li></ul>

Additional query words: plutonium

Keywords: kbbug kbpending KB293400

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.