ThinkGeo.com    |     Documentation    |     Premium Support

Speed of TabFeatureLayer and indexing?

Hi,


I've just upgraded from 4.5 to 5.5, and one of the gotchas have been TabFeatureLayer.


You've obsoleted the old TabFileFeatureLayer, which worked in a solution I built for version 4.5. However, the replacement TabFeatureLayer doesn't work properly in 5.5 !


My TAB file contains is a road network, and has close to 700,000 records. I've tried to open it with RequireIndex = False, which doesn't seem to work - the browser says "waiting" indefinitely, and nothing shows.


I did create a MapInfo index (IND file) on a uniquely numbered integer field, but it didn't help. Please note here, that I'm indexing using a Danish version of Professional, and that the created indexes in this are different from US indexes (which I cannot create) !


I've tried to add a call to BuildIndexFile, but is unsure what 1st parameter to use, and unsure whether to call the method every time, as indexing 700,000 records take a very long time ! 


How to check whether an index has been created already (and avoid doing it again) ?


And I can't seem to be able to use the "obsolete" TabFileFeatureLayer" either, although:

- it's referenced in and added to my project

- is present in the "bin" folder of the published application


It errs with a message in the map window: "Could not find MapSuiteFdoExtension.dll assembly". I've tried to copy "FdoExtension.dll" to both Windows/System32 and Windows/SysWow64, both under its own name ("FdoExtension.dll") and renamed to "MapSuiteFdoExtension.dll", but nothing works.


Please advise !


 



Hi Lars, 
  
 I just review the latest samples of version 5.5. 
  
 The TabFileFeatureLayer should be replaced by new TabFeatureLayer. 
 I think you can call  
 TabFeatureLayer.BuildIndexFile(“YourTabFilePath”, BuildIndexMode.DoNotRebuild); 
 Which can build index for you and won’t build again if the index file exists. 
  
 I have one question want to make sure: You cannot build the indexes, does that because any exception thrown or just the index file cannot be generated succeed? 
  
 Regards, 
  
 Don

Hi Don, 
  
 Yes, I found out about the “DoNotRebuild” parameter, this solves the user problem. 
  
 But unless there’s some other way of pre-building the index, this means that I always have to manually run the app once wheever I replace the dataset (e.g. if a newer version is deployed for which no index exists) ? 


Hi Lars,  
  
 Sorry I haven’t reply you quickly. 
  
 About your question, it looks you still need the index file because your record number is huge. 
  
 For our map control we don’t have a pre-building index function, but I think maybe you can build a service separate from your map project. This service can build index and copy to cover your original one if your data changed. 
  
 I don’t think it’s a good solution but I think that maybe works.  
  
 Regards, 
  
 Don