ThinkGeo.com    |     Documentation    |     Premium Support

ArgumentOutOfRangeException when Execute a query

             ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"D:\AsisAVLMaps\Türkiye_City.shp");


            worldLayer.Open();        
            DataTable dataTable = worldLayer.QueryTools.ExecuteQuery("select * from Türkiye_City");
            worldLayer.Close();
 
it gives me error : startindex can not be smaller than the zero. What is wrong?

Hi, Ayhan 
  
 There are many conditions cause this error. Please provide us the data and code you are consuming in your reply or send these data to support@thinkgeo.com and ask him to forward to me.  
 I suggest that you first off refer to the "ExcuteASqlQuery" sample in our installed samples which you could find its source at "Samples\QueryingFeatureLayers\ExcuteASqlQuery.aspx". 
  
 If you have any problems please let me know. 
  
 Thanks, 
 Khalil

Hi, Khalil 
  
  I send the data to support@thinkgeo.com
  
 thanks 
  
 ayhan

Hi, Ayhan 
  
 OK, thanks for your code and data. I will let you know if I have any progress on it. 
  
 Thanks, 
 Khalil

Khalil, 
  
 I send you only the data because I was just trying it, so there is no a specific code on it. if you still want the code I can send you. 
  
 thanks 
  
 Ayhan 
  
  


Hi, Ayhan


I have got your data and use my code, but it works well. I guess there are some errors in your code. So please refer to the attachment code. If you still have this problem, please provide us with code you are consuming.


Thanks,


Khalil


 



2102-ExecuteASqlQuery.zip (8.12 KB)

Khalil, 
  
 I just downloaded the code and tried the solution but still I get same error. I use still web edition 3.1.441, may it probably cause the error? 
  
 thanks, 
  
 Ayhan

Hi, Ayhan 
  
 There is no relationship with the version of WebEdition. I also have tested with version of 3.1.441 and it still works well. So please provide us with the enviorment, if you are running it on 64bit system and you won’t get it work. You will see the statement below in the Readme : 
 ShapeFileFeatureSource.ExecuteQuery function isn’t supported for 64 bit system, because the Microsoft.Jet.OLEDB 4.0 isn’t supported on a 64 bit system. 
  
 Thanks, 
 Khalil

Khalil, 
  
 Operating sistem is windows 7 32 bit turkish, I use Microsoft Visual Studio 2008. 
  
 Thanks, 
  
 Ayhan  
  


Ayhan, 
  
 Sorry for that. The problem is related to the Turkish environment you are using. We have fixed this bug in our source code; so please check out the lasted DLL package late today and its version is 4.0.028 or later from the link below: 
 helpdesk.thinkgeo.com/helpdesk/login.aspx 
  
 Thanks, 
 Khalil

Khalil, 
  
   I just downloaded Map Suite Web Edition 4.0.0.17 and installed it, then I downloaded WebEdition Full 4.0.0.28 Dll Package and copied entire bin folder to the your project bin folder and then copied appropriate dlls to the system32 folder but still I get same error. sorry about that. 
  
 Thanks, 
  
 Ayhan

Hi, Ayhan



I have tested the version of 4.0.028 and it works well. So I guess you use it in the wrong way. You don't need to copy the bin folder of version 4.0.028 to the project bin folder and you need to add references in your project. Please see the screenshot below:



Right-click the project in Solution Explorer and select "Add  Reference...", navigate to the bin folder of version 4.0.028 and select all.


Also you could verfy the version in the project bin folder and make sure that its version is 4.0.028 or later. Please refer to the screenshot below:



If you still have any problems please feel free to let us know.


Thanks,


Khalil



Khalil, 



Thank you very much, it is ok now. But now I get turkish characters problem. I set  worldLayer.Encoding to System.Text.Encoding.GetEncoding("utf-8")"  



LayerOverlay staticOverlay = (LayerOverlay)Map1.CustomOverlays["StaticOverlay"]; 

ShapeFileFeatureLayer worldLayer = (ShapeFileFeatureLayer)staticOverlay.Layers["WorldLayer"]; 

worldLayer.Encoding = System.Text.Encoding.GetEncoding("utf-8");  



and also in html tag "(meta http-equiv="Content-Type" content="text/html; charset=utf-8"
)"  but doesn't change anything. And also I want to ask about  ShapeFileFeatureSource.ExecuteQuery function isn’t supported for 64 bit system. if I transfer my project to the 64 bit system what should I do? 



Thanks, 

Ayhan



 



Hi, Ayhan 
  
 Maybe you could try to set it like the code below: 
 worldLayer.Encoding = System.Text.Encoding.UTF8 
  
 Also if you want to transfer your project to the 64 bit system and I’m sure that your web app can’t work. That’s because we use Microsoft.Jet.OLEDB 4.0 technology to implement the ShapeFileFeatureSource.ExecuteQuery function and it isn’t supported on a 64 bit system. 
 Sorry about that. 
  
 Thanks, 
 Khalil

Khalil, 
  
 Do you plan to use another technology for the ShapeFileFeatureSource.ExecuteQuery in feature? 
  
 Thanks, 
  
 Ayhan

Ayhan, 
  
 Sorry for that. 
 We don’t have plans to do it. If you have better choice, and maybe you could override the ExecuteQueryCore method of ShapeFileFeatureSource and write your own code here. 
  
 Thanks, 
 Khalil