OGR Virtual problem with Where clause
James Perrins
JamesP at ESDM.CO.UK
Thu Mar 30 08:43:11 PST 2006
Apologies - I had intended to reply to the list - my mistake.
I was trying to avoid using an OVF file as I'm using CGI and the next
step was to look at dynamically changing the where clause from the URL
Using double quotes round the whole xml string does make it work - I
read someone else on the list saying that this didn't work - so hadn't
tried it
Thanks very much
James
_____
From: Pagurek,Debbie [NCR] [mailto:Debbie.Pagurek at EC.GC.CA]
Sent: 30 March 2006 17:24
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] OGR Virtual problem with Where clause
Please reply to the list so that others can comment too.
One easy way to solve this is to put your xml in an OVF file that
resides outside of your mapfile, and then just refer to that file in
your mapfile.
e.g. in your mapfile LAYER section:
LAYER
NAME "air1_2005"
DEBUG ON
DATA "air1_layer" # Must be the same as <OGRVRTLayer name=""> in ovf
file- case sensitive
CONNECTIONTYPE OGR #Must be OGR for the ODBC connection
CONNECTION /web_map_services/data/cesi/air1_map_2005_en.ovf
etc.
Another way to solve it is to put double quotes around your XML in the
mapfile so then your single quotes should work?
refer to
http://mapserver.gis.umn.edu/docs/reference/vector_data/VirtualSpatialDa
ta/?searchterm=ovf
for more information and examples.
D. Pagurek
-----Original Message-----
From: James Perrins [mailto:JamesP at esdm.co.uk]
Sent: Thursday, March 30, 2006 10:46 AM
To: Pagurek,Debbie [NCR]
Subject: RE: [UMN_MAPSERVER-USERS] OGR Virtual problem with
Where clause
Thanks - but single quotes don't work because the whole xml is
in single quotes in the map file
Unless there is some way to escape the quotes which I've failed
to manage
e.g.
'<OGRVRTDataSource>
<OGRVRTLayer name="TestMemo">
<SrcDataSource>ODBC:WKT,TestPolygon</SrcDataSource>
<SrcSQL>SELECT * FROM TestMemo where
Name="Cosh"</SrcSQL>
<SrcLayer>TestMemo</SrcLayer>
<GeometryType>wkbPolygon</GeometryType>
<GeometryField encoding="WKT" field="GEOMETRY"/>
</OGRVRTLayer>
</OGRVRTDataSource>'
P.S. I know the above example is actually for Access not SQL -
but I'm seeing the same behaviour in both
Thanks
James
_____
From: Pagurek,Debbie [NCR] [mailto:Debbie.Pagurek at EC.GC.CA]
Sent: 30 March 2006 16:18
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] OGR Virtual problem with
Where clause
Try using single quotes instead of double quotes:
<SrcSQL>SELECT * FROM TestPolygon WHERE Name='Cosh'</SrcSQL>
D. Pagurek
-----Original Message-----
From: UMN MapServer Users List
[mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of James Perrins
Sent: Thursday, March 30, 2006 8:57 AM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: [UMN_MAPSERVER-USERS] OGR Virtual problem with
Where clause
Hi,
I'm just experimenting with this - (just discovered it
:-)) which looks great.
I'm calling from mapserver with the XML connection
statement in the map file (IIS5 + Mapserver 4.6.1)
I've been playing with MDB and SQL Server - both of
which I can get to plot points and polygons (with WKT)
In the examples below - KeyField is an Integer in the
database and Name is a text / nvarchar (50)
Plotting the whole layer works fine
<SrcSQL>SELECT * FROM TestPolygon</SrcSQL>
Using a filter on an integer field works fine
<SrcSQL>SELECT * FROM TestPolygon WHERE
KeyField=1</SrcSQL>
But I just can't get it to filter using any other sort
of where clause - specifically text string e.g.
<SrcSQL>SELECT * FROM TestPolygon WHERE
Name="Cosh"</SrcSQL>
I've tried a variety of syntaxes but no success -
everything I try returns something like:
SQL statement failed, or returned no layer result:
SELECT GEOMETRY FROM TestPolygon WHERE Name="Cosh"
Can anyone help me out ?
Have I got the syntax wrong - if so is there any doc
that details this ?
Looking at others questions they seem to have it working
- do I need to be careful of build versions?
Many Thanks
James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20060330/6da6abf0/attachment.htm>
More information about the MapServer-users
mailing list