POST
|
Hi Josh, If you want to kick it up a notch, try load-only mode. This is something used in File GDB and SDE (although the way they actually work differs slightly between the two). For File GDB, basically it suspends all indexes - when you're finished, you knock it out of load-only mode, rebuilding the indexes. It should make a significant difference.
IFeatureClassLoad featureClassLoad = (IFeatureClassLoad)pNewTable;
featureClassLoad.LoadOnlyMode = true;
// Get cursor, do inserts, etc., then...
featureClassLoad.LoadOnlyMode = false;
Cheers, James
... View more
12-21-2010
02:23 PM
|
0
|
0
|
347
|
POST
|
Hi Andy, I'm not sure if you're familiar with class extensions, but they're something along the lines of an SDE trigger. You create them using ArcObjects and they allow you to listen to events on a table or feature class. You said: "my issue is that data entry will come from multiple sources, such as importing GPS data, importing data from proprietary software, and regular data entry using ArcMap". As long as all of these workflows go "through" ArcCatalog, ArcMap, or custom ArcObjects applications, the class extension's event handlers will be triggered. Class extensions *won't* be triggered if a user is editing the data through SQL, however. Another downside is that class extensions require you to deploy and register a DLL to every machine that accesses the geodatabase directly - client machines without the DLL will not be able to open the feature class(es) that require the extension. This page describes how to develop a class extension: http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/6caed32d-8baf-4771-8bb4-2f350b7f0d7a.htm Cheers, James
... View more
11-11-2010
07:29 PM
|
0
|
0
|
1418
|
POST
|
I think setting your DEFAULT version's permissions to Protected should give you what you're looking for. Cheers, James
... View more
10-26-2010
05:58 AM
|
0
|
0
|
336
|
POST
|
Hi Jordan, One option would be to create a workspace extension that implements the IVersionEvents2 interface. The major drawback of this is that you'd still have to deploy a DLL to all of your users, but it has the advantage over a custom command that your users can still rely on the standard post command. Once they install the DLL the user experience won't change for them at all. Here's a link with more information: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Creating_workspace_extensions/000100000423000000/ Cheers, James
... View more
10-25-2010
04:41 PM
|
0
|
0
|
336
|
POST
|
Hi Stefan, I'm not sure if this will help, but try making the first parameter of OpenQueryClass dynamic and unique, i.e. append a timestamp. As long as the layer object is still reused I don't think the change will be visible to the user. Hope this helps, James
... View more
10-07-2010
04:11 PM
|
0
|
0
|
261
|
POST
|
Hi Uday, IRelationshipClassEvents is not an interface you can implement in a class extension in order to receive notifications. It offers subscription-style events that can be reached (assuming you're using .NET) by casting a relationship class to the IRelationshipClass_Event interface. For a discussion of the differences between getting events in class extensions vs. subscription-style events, see the following: http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/9dcfe2e3-7a5b-472f-b01c-da4e589676d3.htm What you may want to look at are the IRelatedObjectClassEvents and IRelatedObjectClassEvents2 interfaces, as well as IConfirmSendRelatedObjectEvents. A section mid-way through the following article describes how to implement these on a class extension: http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/6caed32d-8baf-4771-8bb4-2f350b7f0d7a.htm Cheers, James
... View more
10-07-2010
04:06 PM
|
0
|
0
|
798
|
POST
|
Hi David, Take a look at the SqlCommand class. Once its properties are set correctly, you can use one of its methods (ExecuteNonReader or something like that I think) to execute DDL. Cheers, James
... View more
09-16-2010
04:36 PM
|
0
|
0
|
222
|
POST
|
Hi Syrus, Rather than modifying your field set, provide a query filter that has its Subfields property set to the subset you'd like to keep. There's a bit more information here: http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IFeatureDataConverter_ConvertFeatureClass.htm And a lot more information here: http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/84a1a5d7-3fa3-452e-976c-8bb57ea5de5b.htm Cheers, James
... View more
09-12-2010
03:13 PM
|
0
|
0
|
226
|
POST
|
Hi Bill, The reason you have to do that is because of this line: ICursor cursor = fclass.ITable_search(qf, true); The "true" parameter (the recycling parameter) indicates that every time a new feature is returned from the geodatabase it overwrites the previous feature in memory. Your feature references were all pointing to the same memory at any one time. Provided you're just holding the polygons for later use and don't intend on modifying any of these features, keeping things as they are now (with recycling = true and the getShapeCopy method) is probably your best bet. Cheers, James
... View more
09-08-2010
11:24 PM
|
0
|
0
|
305
|
POST
|
Hi Gordon, Although I'm not sure what's causing your issue, I think you'll have to rework your approach on account of this step: 'Get all fields and change name of extracted raster field
'This is done so that another raster field can be added
Set pFields = pFClass.Fields
Set pField = pFields.Field(pFields.FindField("RASTERVALU"))
Set pFieldEdit = pField
pFieldEdit.Name = "RasVal" & i It isn't possible to change the name of an existing field through ArcObjects. Although the properties of the objects in-memory may look like a change has occurred, if you look at the underlying data source the changes won't be reflected there and you may get unexpected behaviour. Cheers, James
... View more
08-24-2010
04:13 PM
|
0
|
0
|
393
|
POST
|
Hi Thomas, I think this documentation will help: http://resources.esri.com/help/9.3/arcgisengine/ArcObjects/esriGeoDatabase/IXmlPropertySet_SetPropertyX.htm Cheers, James
... View more
08-08-2010
03:57 PM
|
0
|
0
|
299
|
POST
|
Hi Alzbeta, What is the error code returned by the CreateFeatureClass call? Also - although I don't think this is the source of the error - when you are creating a geodatabase feature class (as opposed to a shapefile, when it doesn't matter) you should typically be passing a value UID into the CLSID parameter. There are a few ways to do this, but typically I create a new feature class description, like so: Dim objClassDescription as IObjectClassDescription = New FeatureClassDescription Then use the IObjectClassDescription.InstanceCLSID property to get the CLSID. Cheers, James
... View more
07-26-2010
02:17 PM
|
0
|
0
|
335
|
POST
|
Hi Paul, Within a geodatabase, the AddDataset method of the IDatasetContainer interface can be used to move feature classes between feature datasets and the workspace level. Here's a bit more information: http://resources.esri.com/help/9.3/arcgisdesktop/arcobjects/esrigeodatabase/IDatasetContainer.htm Cheers, James
... View more
07-20-2010
04:47 PM
|
0
|
0
|
240
|
POST
|
BTW where one does find a list of ArcObjects automation error codes? Error codes in ArcObjects are not unique - the meaning of an error depends on the context of the error. For example, there is an enum type in the Geodatabase library that defines the values of Geodatabase error codes known as fdoError, but there are comparable enum types for virtually every other library. In many cases the same numeric values are re-used across multiple libraries. Here's a utility I built a while back to make life easier: http://resources.esri.com/arcgisengine/dotnet/index.cfm?fa=codeGalleryDetails&scriptID=16621 Because there are so many error enums in ArcObjects, it uses an XML configuration file to define a subset of types that you're interested in. The default configuration file limits the errors to data access, geometry and (I believe) network errors.
... View more
06-09-2010
02:23 PM
|
0
|
0
|
381
|
POST
|
One problem is that you're using a variable as a literal. You need to concatenate the literal parts of the string with the variable like this: pQueryFilter.whereClause = "ADDRESS = '" & DEMname & "'"
... View more
06-08-2010
03:35 PM
|
0
|
0
|
280
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|