ThinkGeo.com    |     Documentation    |     Premium Support

SQL Server 2008 support

Hello,


I'm trying to use MsSql2008FeatureLayer and run into two issues.


1. Creating a layer against a table with no records throws an exception while calling Layer.GetBoundingBox method.


2. The current design doesn't allow data filtering except by Id which is not really useful for most scenarios. The ExecutingSqlStatement event is not helpful as well since some of your queries are T-SQL scripts and modifying them on the fly is prone to errors.


Is there any chance that you could enhance this class to support user-defined definition query? This could be done through a single string property called DefinitionQuery that will be used to construct WHERE clause before a query needs to be run.


Thanks



Lenny, 
  
   We are looking into the first issue.  Quite honestly I am not sure what to do here.  If we return null then you need to check that.  If we return a small rectangle that is not really accurate.  Any suggestion would be appreciated. 
  
   For the second item we will consider that as well and setup a test.  The issue is that if you do it through the event or we add it through the property the end result is the query string being modified and that is tricky.  We have to make sure to apply that where clause to all of the query run such as the count etc.  I think it is possible we just need to test it and make sure we have all of our bases covered. 
  
 David

David, 
  
 For the first issue I think you could return an empty rectangle if ThinkGeo supports such concepts. 
  
 For the second one, applying the "definition query" in your code should be  easier than doing it through an event (as it is right now) since you have access to the original query and know exactly where to put it. As an example of how to do it, have a look at SQL 2008 support in SharpMap on codeplex. 
  
 Regards

Lenny, 
  
 We don’t support an “empty” shape in the current version; we will really think about it next week what’s the best way for this situation. 
  
 For the second problem, we might start to work on it pretty soon; hopefully you can get some result next week. 
  
 Thanks, 
  
 Ben 


Lenny,


Thanks for your post and suggestions. Just send a quick update on this thread to let you know that we have get the where clause supported as you suggest, following code shows you how to use it easily, to use it you may get the version 4.0.99.0 or higher versions.
 

 

MsSql2008FeatureLayer sql2008Layer = new MsSql2008FeatureLayer(connectString, "states", "recid");
sql2008Layer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;
sql2008Layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
sql2008Layer.WhereClause = "WHERE ID>20";

 

Any more questions just feel free to let me know.
 
Thanks.
 
Yale

Thanks, Yale. 
  
 Which development/release build has this feature implemented?

Lenny, 
  
 I am sorry to forget to let you know that it is in Development brunch and it is in version 4.0.99.0 or later versions. 
  
 Thanks. 
  
 Yang