Strange (OVF) Query Error

Tim Schaub tim at COMMENSPACE.ORG
Tue Feb 28 12:36:17 PST 2006


I've noticed similarly strange behavior when running a query on inline OVF data (also with PHP mapscript - details below).  My virtual layer reads from a table with a multi-column primary key in a MySQL database.  I get three types of funky behavior with this:

1) If I don't specify an <FID> in my inline OVF, querying works as expeced until I call $layer->close() - Apache reports "premature end of script headers" only when I try to close the queried layer.

2) If I change my primary key to an auto-numbered field and set <FID>id<FID> (where id is my auto-numbered field), I get "Unable to identify field 'id'".

3) If I set <FID>some_other_field</FID> then everything works as expected - even if the values in some_other_field are not unique.

Any ideas?
Tim


Details: 

MapServer 4.6.1
GDAL/OGR 1.2.6
PHP 5.0.5

Mapfile snipit (this is the only version that works):

	CONNECTION "<OGRVRTDataSource>
			<OGRVRTLayer name='survey_locations'>
				<SrcDataSource>MySQL:DB,user=user,password=pass,tables=geog</SrcDataSource>
				<SrcLayer>geog</SrcLayer>
				<GeometryType>wkbPoint</GeometryType>
				<LayerSRS>WGS84</LayerSRS>
				<GeometryField encoding='PointFromColumns' x='lon' y='lat'/>
				<FID>non_unique_field</FID>
			</OGRVRTLayer>
		</OGRVRTDataSource>"
	CONNECTIONTYPE OGR


mysql> describe geog;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(11)      |      | PRI | NULL    | auto_increment |
| regionid | char(3)      |      | MUL |         |                |
| geogid   | int(8)       |      |     | 0       |                |
| geog     | varchar(100) | YES  |     | NULL    |                |
| lat      | float        | YES  |     | NULL    |                |
| lon      | float        | YES  |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+


________________________________

	From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of Pagurek,Debbie [NCR]
	Sent: Monday, February 27, 2006 1:32 PM
	To: MAPSERVER-USERS at LISTS.UMN.EDU
	Subject: Re: [UMN_MAPSERVER-USERS] Strange Query Error
	
	
	Tim,
	I haven't tested this, but I think I might have an answer for you. I found an old post that indicated that the OVF file that points to a Microsoft Access database should contain
	 
	<FID>yourUniqueIdColumn</FID> 
	 
	in order to indicate what the primary key or unique field is.
	I'm curious to know if this works, so please reply to me and the list!
	 
	Debbie Pagurek
	  -----Original Message-----
	From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of Pascoe,Tim [Burlington]
	Sent: Wednesday, February 15, 2006 9:12 AM
	To: MAPSERVER-USERS at LISTS.UMN.EDU
	Subject: [UMN_MAPSERVER-USERS] Strange Query Error
	
	
	
		Sorry for the cross-post, but I'm unsure of where this problem may be occurring. I have a mapserver installation running in IIS, on a Windows2000 machine. A little while ago, I upgraded all the components to:

		PHP 5.0.5.5

		Mapserver 4.6

		Mapscript 4.6.1

		Chameleon 2.0

		GDAL 1.3

		I am using OGR to create a virtual layer of points, and then filter this layer using an SLD generated on the fly, based on user input. This all worked perfectly before the upgrade. Everything seems to work fine now, the layers filter properly, and display the way they should. However, if a point is queried, the data returned in the Chameleon query window is for the first record in the recordset returned for the virtual layer, unfiltered, every time; no matter what point is selected.

		I know of one other person experiencing exactly this behavior, and that installation has the latest versions of all software, with the same problem. Anyone have any ideas?

		Any help is appreciated,

				Timothy Pascoe


		Environment Canada / Environnement Canada
		Canada Centre for Inland Waters / Centre Canadien des Eaux Intérieures
		867 Lakeshore Road / 867, chemin Lakeshore
		Burlington, Ontario / Burlington (Ontario)

		L7R 4A6
		
		Tel/Tél: (905) 336-6239
		Fax/Téléc: (905) 336-4699
		E-mail/C. élec: tim.pascoe at ec.gc.ca <mailto:tim.pascoe at ec.gc.ca> 
		Government of Canada/Gouvernement du Canada

		This e-mail represents the opinions and views solely held by its author and in no manner may be considered as representing those of his/her employer.

		
	--
	No virus found in this incoming message.
	Checked by AVG Free Edition.
	Version: 7.1.375 / Virus Database: 268.1.0/269 - Release Date: 2/24/2006
	



More information about the MapServer-users mailing list