Error on Itemnquery with PostGIS-layer
Sebastian Walter
sebastian.walter at FU-BERLIN.DE
Tue Aug 21 09:12:40 PDT 2007
Hi,
just a guess: you could try 'name.name' instead of just 'name'
(tablename.columnname).
Regards,
Sebastian
HarryS wrote:
> How could I add columns to DATA statement ?
>
> I think my mistake is in the query-URL:
>
> this one works on Windows with shapefile-data but not on Linux with PostGIS
> (anything else works fine)
> http://myServer.com/cgi-bin/mapserv?&map=/home/harry/Mapfiles/MyMap.map&mode=itemnquery&qlayer=City-Database&qitem=name&qstring='London'
>
> changing the syntax to this (what should be the same than above)
> http://myServer.com/cgi-bin/mapserv?&map=/home/harry/Mapfiles/MyMap.map&mode=itemnquery&qlayer=City-Database&qitem=name&qstring=('[name]'='London')
>
> results in
>
> msQueryByAttributes(): Search returned no results. No matching record(s)
> found.
>
> at least no error but 'London' is definetly in the database and I tried with
> upper case/lower case,...
>
> The PostGIS-databasename is 'geonamesallppl' the tablename is 'name' and
> also the column-name is 'name'.
>
> Any ideas what I am doing wrong ??
>
> Thx, Harry
>
>
> This is my template-file (if it plays a role)
>
> <html>
> <head><title>Sample Template</title></head>
> <body>
> <li> Name is [NAME]
> <li> Population is [POPULATION]
> <li> Code is [CODE]
> <tr>
> <td>[lrn]</td>
> <td>[NAME]</td>
> </tr>
>
> </body>
> </html>
>
>
>
>
> Umberto Nicoletti wrote:
>
>> Sorry, I meant the DATA statement.
>>
>> Umberto
>>
>> On 8/21/07, Umberto Nicoletti <umberto.nicoletti at gmail.com> wrote:
>>
>>> You probably have to add the columns in the CONNECTION STATEMENT.
>>>
>>> Umberto
>>>
>>> On 8/21/07, HarryS <mapcollect at gmx.net> wrote:
>>>
>>>> this is the layer configuration:
>>>>
>>>> LAYER
>>>> NAME "City-Database"
>>>> GROUP "Databases"
>>>> STATUS default
>>>> DATA "the_geom from name"
>>>> CONNECTION "user=postgres dbname=geonamesallppl host=localhost
>>>> port=5432"
>>>> CONNECTIONTYPE postgis
>>>> TYPE QUERY
>>>>
>>>>
>>>> CLASS
>>>> TEMPLATE "template-city.html"
>>>> NAME "City-Database"
>>>> END
>>>>
>>>> METADATA
>>>> "queryable" "true"
>>>> "searchfield" "name"
>>>> "fields"
>>>> "name:Name,population:Pop,country:Country,province:Province,CODE:Code"
>>>> END
>>>>
>>>> END
>>>>
>>>>
>>>> Mapserver can render maps using this layer and also searching via
>>>> KaMap-Frontend works on this layer, only itemnquery via cgi gives me
>>>>
>>> the
>>>
>>>> above quoted error. I tried using different cases with column names
>>>>
>>> (NAME,
>>>
>>>> Name, name) but always got same error: ...ERROR: Column »london« does
>>>>
>>> not
>>>
>>>> exist...
>>>> This I don't understand because »london« is the querystring and not the
>>>> column-name.
>>>>
>>>> Thanks,
>>>> Harry
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Umberto Nicoletti wrote:
>>>>
>>>>> Please post the layer configuration for postgis AND check the case of
>>>>> the column name.
>>>>> Postgres handles column names with case sensitivity if, at table
>>>>> creation, the column name was in quotes. In that case you have the
>>>>> specify the column name with exactly the same case and in quotes;
>>>>>
>>> this
>>>
>>>>> is most likely the reason.
>>>>>
>>>>> HTH,
>>>>> Umberto
>>>>>
>>>>> On 8/21/07, HarryS <mapcollect at gmx.net> wrote:
>>>>>
>>>>>> doing this query:
>>>>>>
>>>>>>
>>>>>>
>>> http://myServer.com/cgi-bin/mapserv?&map=/home/harry/Mapfiles/MyMap.map&mode=itemnquery&qlayer=City-Database&qitem=NAME&qstring='London'
>>>
>>>>>> produces this Error:
>>>>>>
>>>>>> prepare_database(): Query error. Error executing POSTGIS DECLARE
>>>>>>
>>> (the
>>>
>>>>>> actual
>>>>>> query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT
>>>>>>
>>>>>>
>>> NAME::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text
>>>
>>>>>> from name WHERE (London) and (the_geom && setSRID( 'BOX3D(-180
>>>>>>
>>> -90,180
>>>
>>>>>> 90)'::BOX3D,find_srid('','name','the_geom') ))'
>>>>>>
>>>>>> Postgresql reports the error as 'FEHLER: Spalte »london« existiert
>>>>>>
>>> nicht
>>>
>>>>>> '
>>>>>> (Translation: ERROR: Column »london« does not exist)
>>>>>>
>>>>>> More Help:
>>>>>>
>>>>>> Error with POSTGIS data variable. You specified '<check your .map
>>>>>>
>>> file>'.
>>>
>>>>>> Standard ways of specifiying are :
>>>>>> (1) 'geometry_column from geometry_table'
>>>>>> (2) 'geometry_column from (<sub query>) as foo using unique <column
>>>>>>
>>> name>
>>>
>>>>>> using SRID=<srid#>'
>>>>>>
>>>>>> Make sure you put in the 'using unique <column name>' and 'using
>>>>>>
>>> SRID=#'
>>>
>>>>>> clauses in.
>>>>>>
>>>>>> For more help, please see
>>>>>>
>>> http://postgis.refractions.net/documentation/
>>>
>>>>>> Mappostgis.c - version of Jan 23/2004.
>>>>>>
>>>>>>
>>>>>> If I do the same query on the same layer but using a shapefile
>>>>>>
>>> instead of
>>>
>>>>>> PostGIS for identical data the query works fine without any errors.
>>>>>>
>>> Can
>>>
>>>>>> someone point me to my mistake, please ?
>>>>>>
>>>>>> Harry Schmidt
>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>>
>>>>>>
>>> http://www.nabble.com/Error-on-Itemnquery-with-PostGIS-layer-tf4303941.html#a12250916
>>>
>>>>>> Sent from the Mapserver - User mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>> --
>>>> View this message in context:
>>>>
>>> http://www.nabble.com/Error-on-Itemnquery-with-PostGIS-layer-tf4303941.html#a12252666
>>>
>>>> Sent from the Mapserver - User mailing list archive at Nabble.com.
>>>>
>>>>
>>
>
>
More information about the MapServer-users
mailing list