Article ID: 892119
Article Last Modified on 3/2/2007
APPLIES TO
- Microsoft Commerce Server 2002 Service Pack 1
SYMPTOMS
In Microsoft Commerce Server 2002 Feature Pack 1 (FP1), when you use the ExprFltrQueryBldr.ConvertExprToSqlFltrStr method to convert an expression that is in XML form to a Microsoft SQL Server filter query string, an unexpected error occurs for some XML expressions.
CAUSE
This problem occurs because of a bug in the Exprfltrbldr.dll file.
RESOLUTION
To resolve this problem, follow these steps:
- Open the Commerce Server 2002 installation folder. By default, this folder is the following folder:
C:\Program Files\Microsoft Commerce Server 2002
- Locate the Exprfltrbldr.dll file, and then rename the file Exprfltrbldr.old.
- Copy the Exprfltrbldr.dll file from the \\ebizrel\qfe\cs2002fp1\1493 folder to the Commerce Server 2002 installation folder.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
MORE INFORMATION
The ExprFltrQueryBldr.ConvertExprToSqlFltrStr method is used to convert an expression from XML to a SQL Server filter query string. For more information, see the Commerce Server 2002 documentation.
When you replace the Exprfltrbldr.dll file, the following parsing issues are corrected:
The not-equal operator does not work for the string data type.
For example, the following code example does not work.<CLAUSE OPER="not-equal"> <Property ID="UserObject.GeneralInfo.logon_name" TYPE="STRING"/> <IMMED-VAL TYPE="string"><![CDATA[john]]></IMMED-VAL> </CLAUSE>
The not-begins-with operator does not work for the string data type.
For example, the following code example does not work.<CLAUSE OPER="not-begins-with"> <Property ID="UserObject.GeneralInfo.logon_name" TYPE="STRING"/> <IMMED-VAL TYPE="string"><![CDATA[s]]></IMMED-VAL> </CLAUSE>
The not-contains operator does not work for the string data type.
For example, the following code example does not work.<CLAUSE OPER="not-contains"> <Property ID="UserObject.GeneralInfo.email_address" TYPE="STRING"/> <IMMED-VAL TYPE="string"><![CDATA[ka]]></IMMED-VAL> </CLAUSE>
The not-in operator does not work for the string data type.
For example, the following code example does not work.<CLAUSE OPER="not-in"> <Property ID="UserObject.GeneralInfo.logon_name" TYPE="STRING"/> <IMMED-VAL TYPE="string" MULTIVAL="True"> <VALUE><![CDATA['qq','33']]></VALUE> </IMMED-VAL> </CLAUSE>
For more information about this problem in Microsoft Commerce Server 2000, click the following article number to view the article in the Microsoft Knowledge Base:
293400 ConvertExprToSqlFltrStr method returns error for some XML expressions
Keywords: kbfix kbbug KB892119