Hello,

I’m developing an app with spatialite (package jsqlite) tileview AND 
dynamic dialogs from GIS Server.
I created Spatialite on Android from a Sqlite-Database with WKT.

On short:
dbsqlite.prepare("SELECT InitSpatialMetaData();").step();
dbsqlite.prepare("BEGIN ;").step();

for (String name : lst_tables) {
dbsqlite.prepare("SELECT AddGeometryColumn('" + name + "','GEOMETRY'," + 
code + ",'GEOMETRY', 'XY',0)").step();
dbsqlite.prepare("UPDATE " + name + " SET GEOMETRY=(GeomFromText(WKT," + 
code + "))").step();
}
dbsqlite.prepare("COMMIT ;").step();
works fine.

BUT now my problem:
I want to insert data to sqlite/spatialite with SQLiteOpenHelper

For a simple, I'll create a simple record where I set only the most 
necessary values.
ID, INSERT_DATE, INSERT_USER
After that I want update for record with all other columns.

But now an essential problem.
While inserting new a record *with or without* geometry I get an exception:

*no such function: GeometryConstraints (code 1): , while compiling: *INSERT 
INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID) VALUES 
('-1','2018-02-27','Username,'2');
INSERT INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID, GEOMETRY) VALUES 
('-1','2018-02-27','Username','2',*ST_POINT*(-1,-1));
INSERT INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID, GEOMETRY) VALUES 
('-1','2018-02-27','Username','2',*MakePoint*(-1,-1,25832));

I created:
SELECT AddGeometryColumn('TABLENAME','GEOMETRY',25832,'GEOMETRY', 'XY',*0*)
SELECT AddGeometryColumn('test_geom', ‚GEOM‘,  4326, 'POINT', 'XY', *0*);
https://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/new-geom.html

Now I tested all 3 ways (nothing, 0, 1)
Everytime same result.

I’ve seen, trigger working on every update and not only while updating 
GEOMETRY-column.
Is this a good idea?
It didn't work.

DROP TRIGGER ggi_MYTABLE_GEOMETRY;
CREATE TRIGGER ggi_MYTABLE_GEOMETRY BEFORE INSERT ON MYTABLE
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'MYTABLE.GEOMETRY violates Geometry constraint 
[geom-type or SRID not allowed]')
WHERE *NEW.GEOMETRY notnull AND  *(SELECT geometry_type FROM 
geometry_columns
WHERE Lower(f_table_name) = Lower('WA_VALVE') AND Lower(f_geometry_column) 
= Lower('GEOMETRY')
AND GeometryConstraints(NEW.GEOMETRY, geometry_type, srid) = 1) IS NULL;
END;

Or do you have an other idea for me?

Thanks

Regards,

Jan

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/c296e8af-fb13-423f-bb8f-6445ba45efe1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to