Select to view content in your preferred language

FeatureLayer setDefinitionExpression limit

900
4
Jump to solution
03-01-2018 12:49 AM
MaximSpikin1
Emerging Contributor

what is the limit for the FeatureLayer.setDefinitionExpression value ?

I try set:

          defstr = "GUID_DOC='{8FB3613A-349E-4ACA-8BC9-7FDB1A5BBBFB}' OR GUID_DOC='{CDAC7263-B656-4C8A-AD19-145A45CD3C8C}' " +
            "OR GUID_DOC='{CC222597-3124-43AA-B54B-F93FBFB92BAB}' OR GUID_DOC='{61900E1E-A819-4846-AF6B-31E83C04CFC3}' OR GUID_DOC='{BB125418-5C39-4775-BC5F-7FC5DE02A743}' " +
            "OR GUID_DOC='{9A93F79D-C01C-4D55-A6A6-AC62755D9144}' OR GUID_DOC='{0B8E8740-9603-4650-B4E4-034D294F4AD2}' OR GUID_DOC='{F9BD9EB4-3FB0-4D0C-A0AE-0B2A39DD6988}' " +
            "OR GUID_DOC='{D542E5E3-B861-4130-B33A-78BD635DECAF}' OR GUID_DOC='{3D8E5CAD-584A-4CC5-8315-07D9518902E4}' OR GUID_DOC='{4F2B1341-B3EF-47DC-93C8-08926E974A9F}' " +
            "OR GUID_DOC='{C3598D68-1CEE-46C3-9831-13FD45FE47A1}' OR GUID_DOC='{D908F2AA-CE41-4AF2-ABB9-EBC075B23D26}' OR GUID_DOC='{DDF9CFAA-CCAE-45B5-AE64-BC5F19644365}' " +
            "OR GUID_DOC='{F334567C-7726-4156-8C5A-465900639626}' OR GUID_DOC='{3F63AAE8-33B1-461D-AE25-F168E203DD17}' OR GUID_DOC='{FA8D23EA-1BD5-468E-B011-39C646284ED8}' " +
            "OR GUID_DOC='{DC66E275-53C8-42C1-A6A9-CAA483E94488}' OR GUID_DOC='{EBDC433A-2036-470E-ADAA-43F1E345F6F8}' OR GUID_DOC='{FA16770B-3EF4-4B1D-A434-015861FF7688}' " +
            "OR GUID_DOC='{70E9EB11-6C47-434D-9A63-CB02FD28D71D}' OR GUID_DOC='{67ABA329-2F06-418E-8BD3-028D96D6BFD9}' OR GUID_DOC='{3A03EF77-7820-4D2F-91AF-02B500B58D92}' " +
            "OR GUID_DOC='{C95E3564-EC80-4B87-8E22-5957FD882EC0}' OR GUID_DOC='{DA16C199-551C-462A-884B-60F986452331}' OR GUID_DOC='{87F89E0E-BB47-4A9C-BBA2-0AE9682FB9CD}' " +
            "OR GUID_DOC='{E7B313A0-A939-484C-8558-639E717CD101}' OR GUID_DOC='{13A5A982-3586-43E2-BDC3-4D26C65DE59E}' OR GUID_DOC='{CC65472C-54D0-4117-99A6-F8E2AFAAD5A5}'";
          myFeatureLayer.setDefinitionExpression(defstr);
          myTable.refresh();

but definition not set 

"TableName (Object:2000, Selected: 0)"  but records in the table = 1023

If I delete one line:

          defstr = "GUID_DOC='{8FB3613A-349E-4ACA-8BC9-7FDB1A5BBBFB}' OR GUID_DOC='{CDAC7263-B656-4C8A-AD19-145A45CD3C8C}' " +
            "OR GUID_DOC='{CC222597-3124-43AA-B54B-F93FBFB92BAB}' OR GUID_DOC='{61900E1E-A819-4846-AF6B-31E83C04CFC3}' OR GUID_DOC='{BB125418-5C39-4775-BC5F-7FC5DE02A743}' " +
            "OR GUID_DOC='{9A93F79D-C01C-4D55-A6A6-AC62755D9144}' OR GUID_DOC='{0B8E8740-9603-4650-B4E4-034D294F4AD2}' OR GUID_DOC='{F9BD9EB4-3FB0-4D0C-A0AE-0B2A39DD6988}' " +
            "OR GUID_DOC='{D542E5E3-B861-4130-B33A-78BD635DECAF}' OR GUID_DOC='{3D8E5CAD-584A-4CC5-8315-07D9518902E4}' OR GUID_DOC='{4F2B1341-B3EF-47DC-93C8-08926E974A9F}' " +
            "OR GUID_DOC='{C3598D68-1CEE-46C3-9831-13FD45FE47A1}' OR GUID_DOC='{D908F2AA-CE41-4AF2-ABB9-EBC075B23D26}' OR GUID_DOC='{DDF9CFAA-CCAE-45B5-AE64-BC5F19644365}' " +
            "OR GUID_DOC='{F334567C-7726-4156-8C5A-465900639626}' OR GUID_DOC='{3F63AAE8-33B1-461D-AE25-F168E203DD17}' OR GUID_DOC='{FA8D23EA-1BD5-468E-B011-39C646284ED8}' " +
            "OR GUID_DOC='{DC66E275-53C8-42C1-A6A9-CAA483E94488}' OR GUID_DOC='{EBDC433A-2036-470E-ADAA-43F1E345F6F8}' OR GUID_DOC='{FA16770B-3EF4-4B1D-A434-015861FF7688}' " +
            "OR GUID_DOC='{70E9EB11-6C47-434D-9A63-CB02FD28D71D}' OR GUID_DOC='{67ABA329-2F06-418E-8BD3-028D96D6BFD9}' OR GUID_DOC='{3A03EF77-7820-4D2F-91AF-02B500B58D92}' " +
            "OR GUID_DOC='{E7B313A0-A939-484C-8558-639E717CD101}' OR GUID_DOC='{13A5A982-3586-43E2-BDC3-4D26C65DE59E}' OR GUID_DOC='{CC65472C-54D0-4117-99A6-F8E2AFAAD5A5}'";

everything is fine 

"TableName (Object:26, Selected: 0)" 

0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus

Maxim, 


  Using a long list or ORs in a sql query is very inefficient. You should switch to using an IN(a,b,c,d,e) sql statement this has a much better ability to handle large lists. Also you are probably reaching the query string limits of your browser if you are not using a proxy in your app. You should be using a proxy so that it can switch to a POST instead of a GET.

View solution in original post

4 Replies
RobertScheitlin__GISP
MVP Emeritus

Maxim, 


  Using a long list or ORs in a sql query is very inefficient. You should switch to using an IN(a,b,c,d,e) sql statement this has a much better ability to handle large lists. Also you are probably reaching the query string limits of your browser if you are not using a proxy in your app. You should be using a proxy so that it can switch to a POST instead of a GET.

MaximSpikin1
Emerging Contributor

Robert, thanks for the answer .
Limit of expression is 2048 characters without a proxy ?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Maxim,


IE has a 2k limit and other browsers range from 2k to 8k.

0 Kudos
MaximSpikin1
Emerging Contributor

Thanks!

0 Kudos