I have converted a shapefile into a geodatabase which I use for geocoding via the ILocator interface. It has the extension (.mdb) and contains address fields with a point which is stored as a long binary object (I think). I have queried it directory using libraries like OleDB. I'm wondering if there's a way to do a SELECT * FROM mytable using the ArcEngine interfaces.

I'll provide some context as well. I'm trying to get around the inflexibility of the SoundEx implementation and some limitations with the locator styles. The locator style interace works like this for address search results:

IField addressField = candidateFields.get_Field(fieldIndex);

But the fields returned only match the fields in the locator, so I get "Zone" and not city, state, zip, unit number, owner name, parcel price, etc.

  • If performance is a key, I'd use file geodatabase (stored in a folder with a .gdb extension). I don't think you'd be able to use OleDB with a file gdb though. Are you following this example? – Kirk Kuykendall Apr 22 '11 at 22:34
  • @Kirk Kuykendall Yeah I'm using that example. – patrick Apr 25 '11 at 15:06

I might be misreading your question, but if you are indeed trying to query the table directly, you can create a QueryFilter and set the SubFields property to include all of the fields you need in the returned cursor.

  • I suspect he is trying to get to normal SQL functions that you just can't do in the ArcObjects world. Maybe I am wrong... – D.E.Wright Apr 24 '11 at 2:58

No, the ArcEngine/ArcObjects APIs all wrap the Datalayer to support the GIS functions for the common classes. Your best option is to create a class in your development language to perform your Query/Search logic natively and if needed return those results and cast them into a ESRI format.

You will also find this is fast as you won't have the direct overhead of the ArcObjects calls wrapping everything you do.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.