mapfile join

Richard Greenwood richard.greenwood at GMAIL.COM
Thu Jan 27 19:24:33 EST 2005


On Wed, 26 Jan 2005 13:01:21 +0200, John Spotten
<John.Spotten at capetown.gov.za> wrote:
>
>
> Hi,
>
> looking for some sample code showing a join use successfully. get a parsing
> error when using it under class.  put it under layer, no parsing error but
> then  XP tells me mapserv.exe has found a problem and is closing down.
> using mapserver 4.4.0 on XP and I get error on html page msDBFJoinConnect():
> Unable to access file. (c:\ms4w\apps\mapserver_demos\ct\data\join.dbf).  any
> clues.    can i use a dbf file.
>
> I am trying to join to a shape file a seperate independent dbf file on a
> common field that is indexed in the shape file.  the field is text type.
>
> I take it it can be accessed using the [join_<join_name>] template in a
> query template file for a one to many join where [join_<join_name>] gets
> replaced with the join header template and footer files and I assume that
> the template within the query template file is
> [<join_name>_<dbf_field_name>].
>
> Is it possible to refer to the qlayer as [join_<join_name>]?
>
> bye
> john
>
> John Spotten
> Transport Modeller/GIS Developer
> Directorate of Transport, Roads and Stormwater
> City of Cape Town
> Tel : +27 21 4067325
> Fax : +27 21 4186989
> Cell : +27 846678901
> Email : john.spotten at capetown.gov.za
> Web : www.capetown.gov.za
>  <<John Spotten.vcf>>
>

I was hoping somebody else would respond to this with a better
example, but here's an sloppy example that I dug out:

LAYER
        NAME  "join_query"
        GROUP "ownership"
        TYPE QUERY
        STATUS ON
        DATA  "/Tc/temp/parcel_region"
        HEADER "attribute_header.html"
        FOOTER "attribute_footer.html"
        TEMPLATE "attribute_display.html"
#       FILTERITEM "PID"
#       FILTER  /./             # regular expression - match anything
        JOIN    # JOIN no longer lives inside of CLASS or inside a QUERY object
                NAME "test"
                TABLE "/Tc/temp/assessor2.DBF"
                FROM PIDP
                TO      PIDA
                TYPE single # multiple
        #       TEMPLATE  cat.html      # required only for one-to-many joins
        END # of JOIN Object
END  # LAYER "join_region"

Yes, you can use a dbf file. In your TABLE clause, try replacing your
"\" with "/" and/or qouting the string.

HTH
--
Richard Greenwood
richard.greenwood at gmail.com
www.greenwoodmap.com



More information about the mapserver-users mailing list