POST
|
I think I found my issue. I was creating multiple instances of the FMDatabase connection across threads. I isolated each thread to have only one instance of FMDatabase and our issue appears to be resolved. Hopefully this helps someone out.
... View more
09-29-2014
12:01 PM
|
0
|
0
|
358
|
POST
|
Hi, Has anyone had success executing queries against a local (offline) geodatabase replica through non-ESRI libraries? When we execute a query containing a JOIN statement using FMDatabase for iOS recently added records from all tables are essentially deleted. For example, consider a geodatabase that has a point feature class representing baseball stadium locations (BallparkLocations), a table containing information on the team (TeamInfo) and tables for events (Events, Games, etc). Say I create a new ball park and associated team info, using the ArcGIS Runtime SDK for iOS saveFeature method. The records are linked by primary key/foreign key GUID values. If I then turn around and execute a query using FMDatabase that contains a JOIN statement, something like: SELECT e.Name, e.StartTime, g.Opponent FROM Events_evw e JOIN Games_evw g ON e.primaryGuid = g.foreignGuid WHERE e.BallparkGuid = '{some ballpark guid}' The query executes fine and returns results, but the records I just added to BallparkLocations and TeamInfo are gone. This is a real problem with complex applications since the SDK does not provide a means to execute complex select statements and querying multiple tables with the asynchronous blocks, the only option provided by the SDK, is very cumbersome. Any ideas or lessons learned would be appreciated. Thanks, Justin Burns Sr. Geospatial Developer GISi
... View more
09-25-2014
04:01 PM
|
0
|
1
|
3643
|
POST
|
Thanks for the reply. Yes, I have seen that page. I found and fixed my issue yesterday. The Server for ArcGIS log file showed an error stating that there was an invalid column data type in the table. As it turns out, the process that creates the SQLite geodatabase does not like fields of type nvarchar(max) (SQL Server). Also, of note for anyone else, if you initialize the AGSGDBGenerateParameters object with the feature service info it does not automatically include tables. I had to override the layerIDs property for the parameters to add both the layer IDs and table IDs.
... View more
04-04-2014
09:26 AM
|
0
|
0
|
593
|
POST
|
Hi, I am using the 10.2.2 version of the SDK and 10.2.1 version of Server for ArcGIS. The help documentation seems to be a little fuzzy on this. Does the SDK support generating a local geodatabase (AGSSyncTask generateGeodatabaseWithParameters method) that includes tables from the feature service? I have been unable to get it to include a table I have in my service. The table meets the requirements needed for sync. Thank you, Justin
... View more
04-02-2014
12:08 PM
|
0
|
7
|
3725
|
POST
|
Hi, I am using the 10.2.2 version of the SDK and working with the offline editing capabilities. The particular layer I am working with has a GUID type field in addition to the GlobalID field. When I try to save a new AGSGDBFeature to the AGSGDBFeatureTable the app crashes. I have been able to successfully save to that layer without supplying a value for the GUID field. SQLite does not have a GUID datatype. When Server for ArcGIS generates the geodatabase it represents GUID field types as uuidtext custom type in SQLite. The name suggests that this is a text type field. If I open the geodatabase in SQLite Manager (Firefox add-in) I can successfully paste a GUID string into the edit dialog for a row and save. This tells me that it is not a SQLite error. I'm wondering if anyone else has tried this yet and if this may be a bug in the SDK. AGSGDBFeatureTable* fbFeatTable = [self.geodatabase featureTableForLayerID:1]; if (fbFeatTable.canCreate && fbFeatTable.canUpdate) { AGSGDBFeature* feature = [[AGSGDBFeature alloc] initWithTable:fbFeatTable]; // I've tried these variations //[feature setAttribute:[NSUUID UUID] forKey:@"RecGuid"]; //[feature setAttribute:[[NSUUID UUID] UUIDString] forKey:@"RecGuid"]; //[feature setAttribute:[NSString stringWithFormat:@"{%@}", [[NSUUID UUID] UUIDString]] forKey:@"RecGuid"]; [feature setAttributeWithString:[NSString stringWithFormat:@"{%@}", [[NSUUID UUID] UUIDString]] forKey:@"RecGuid"]; [feature setAttributeWithString:@"Test1" forKey:@"aaa"]; [feature setGeometry:geometry]; NSError* saveError; if ([fbFeatTable saveFeature:feature error:&saveError]) { NSLog(@"Saved."); } else { NSLog(@"Error Saving: %@", saveError); } } else { NSLog(@"%@ does not allow new features.", fbFeatTable.tableName); } Thanks, Justin
... View more
03-31-2014
04:32 AM
|
0
|
2
|
2609
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|