<html style="direction: ltr;">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1255"><style>body
p { margin-bottom: 0cm; margin-top: 0pt; } </style>
</head>
<body style="direction: ltr;"
bidimailui-detected-decoding-type="preferred-charset"
bgcolor="#FFFFFF" text="#000000">
<p>(double posting to QGIS and Spatialite)</p>
<p>I'm Using QGIS 1.7.2 and Spatialite 2.4.0 on Ubuntu (same problem
on Windows)<br>
</p>
<p>I've created a Spatialite DB and layer using the QGIS "New
Spatialite Layer" dialog. It seems to add some additional triggers
which call a function RTreeAlign(). But this function doesn't seem
to exist?</p>
<p>Here's the table:</p>
<p>spatialite> .schema traps<br>
CREATE TABLE "traps"("TrapID" text,"TrapType" text,"Longitude"
real,"Latitude" real,"Elevation" real,"X_UTM" real,"Y_UTM"
real,"Notes" text,"Attractant" text, "geometry" POINT);<br>
CREATE TRIGGER "ggi_traps_geometry" BEFORE INSERT ON "traps"<br>
FOR EACH ROW BEGIN<br>
SELECT RAISE(ROLLBACK, 'traps.geometry violates Geometry
constraint [geom-type or SRID not allowed]')<br>
WHERE (SELECT type FROM geometry_columns<br>
WHERE f_table_name = 'traps' AND f_geometry_column = 'geometry'<br>
AND GeometryConstraints(NEW."geometry", type, srid, 'XY') = 1) IS
NULL;<br>
END;<br>
CREATE TRIGGER "ggu_traps_geometry" BEFORE UPDATE ON "traps"<br>
FOR EACH ROW BEGIN<br>
SELECT RAISE(ROLLBACK, 'traps.geometry violates Geometry
constraint [geom-type or SRID not allowed]')<br>
WHERE (SELECT type FROM geometry_columns<br>
WHERE f_table_name = 'traps' AND f_geometry_column = 'geometry'<br>
AND GeometryConstraints(NEW."geometry", type, srid, 'XY') = 1) IS
NULL;<br>
END;<br>
CREATE TRIGGER "gid_traps_geometry" AFTER DELETE ON "traps"<br>
FOR EACH ROW BEGIN<br>
DELETE FROM "idx_traps_geometry" WHERE pkid = OLD.ROWID;<br>
END;<br>
CREATE TRIGGER "gii_traps_geometry" AFTER INSERT ON "traps"<br>
FOR EACH ROW BEGIN<br>
DELETE FROM "idx_traps_geometry" WHERE pkid=NEW.ROWID;<br>
SELECT RTreeAlign('"idx_traps_geometry"', NEW.ROWID,
NEW."geometry");END;<br>
CREATE TRIGGER "giu_traps_geometry" AFTER UPDATE ON "traps"<br>
FOR EACH ROW BEGIN<br>
DELETE FROM "idx_traps_geometry" WHERE pkid=NEW.ROWID;<br>
SELECT RTreeAlign('"idx_traps_geometry"', NEW.ROWID,
NEW."geometry");END;<br>
<br>
</p>
<p><br>
</p>
<p>Any attempt to update or insert to this layer fails:</p>
<p>Using the the spatialite CLI I get:</p>
<p>spatialite> INSERT INTO traps (TrapID, Geometry) VALUES
('1000', MakePoint(10,10,4326));<br>
SQL error: foreign key mismatch<br>
spatialite> </p>
<p>And from the Spatialite GUI, I get a window saying: SQL Error:"No
such function RTreeAlign"</p>
<p>What am I missing??</p>
<p><br>
</p>
<p>Thanks,</p>
<p>Micha<br>
</p>
</body>
</html>