ThinkGeo.com    |     Documentation    |     Premium Support

Querying Filegeodatabase

Hi,



I am trying to use ExecuteQuery method on FileGeoDatabaseFeatureLayer to return aggregated results from my file geodatabase.  For example, I may have a gdb that has an  ORDERS table with orders for various PRODUCTS in REGIONs with an associated PRICE.  I would want to do the following sql:



Select REGION, PRODUCT, Sum(PRICE) from Orders Group By REGION, PRODUCT



The query will run no problem, but I find that the resultant data table contains all columns and all rows in the original feature layer and there is no sum of the PRICE.



It would seem that the only thing I can do that affects the results is to use a filter such as like.  Then, I get back only the rows that full-fill the like statement, but as above all columns are returned even if my select statement only has a few.



Please can you tell me what exactly is supported by the ExecuteQuery method?  If aggregation and select are not supported, is there another way without first returning all features?



Thanks,

Damian


Hi Damian, 
  
 The File Geodatabase does not support the keywords like “DISTINCT”, “ORDER BY”, “GROUP BY” and so on at this time, but it supports “SELECT…WHERE…” clause. In order to avoid querying all the features, please try “SELECT …WHERE…” clause. 
  
 Thanks,

Don, 
  
 Okay that it doesn’t support GROUP BY and ORDER BY.  I figured that; however, if you read my post more carefully, you will find that SELECT function always returns all fields regardless of whether you provide a list of field names after SELECT.  This is not right.  I want to return a DataTable to a grid view and currently have to remap the results of ExecuteQuery to a new DataTable with only the fields that I want before passing it to the grid view. 
  
 WHERE clause works to filter the list, but again all fields are returned. 
  
 Regards, 
 Damian

Hi Damian,



The FileGeodatabase API has been upgraded, it supported the “SELECT” clause and please download it at here. Please remember to add the featureIdcolumn into the “SELECT” clause or it will throw an exception.



NOTE:
Please make sure that to delete the folders: “FileGeoDatabaseX64” and “FileGeoDatabaseX86” which at “C:\Windows\SysWOW64\Map Suite 9.0” before installation.



Any questions please let me know.



Thanks,
Peter