[Mapserver-users] Can't locate object method "TIEHASH"
Lowell Filak
lfilak at medinaco.org
Fri May 28 09:30:32 PDT 2004
The following message was sent by Sean Gillies <sgillies at frii.com> on
Fri, 28 May 2004 08:00:31 -0600.
> On May 28, 2004, at 6:38 AM, Eric Bridger wrote:
>
> > On Fri, 2004-05-28 at 05:54, Agneta Schick wrote:
> >> Hello mapserver-users,
> >>
> >> I've searched the mail archive and found 2 messages on this topic,
> >> both were, however, unanswered.
> >>
> >> So I'll try again...
> >>
> >> Platform:
> >> MapServer 4.0.1
> >> solaris 9
> >> Perl 5.8.3
> >>
> >> I want to test an application querying shape files.
> >> My perl mapscript code
> >> ...
> >> $layer->queryByPoint($tmp_map,$pnt,$mapscript::MS_SINGLE,1000);
> >> my $res = $layer->getResult(0);
> >> $layer->open();
> >> my $shape=new mapscript::shapeObj($layer->{type});
> >> my $shape_index = $layer->getShape($shape,-1,$res->{shapeindex});
> >> my $table =
> >> mapscript::msDBFOpen("/space/b3sn13/webdb/htdocs/ermos/data/
> >> usgs.dbf","r+");
> >> ....
> >> is terminated with
> >> Can't locate object method "TIEHASH" via package "_DBFHandle".
> >>
> >> Is this a mapscript problem or is something missing in the
> >> installation?
> >>
> >> (I tried the same perl script on solaris 8, mapserver 3.6.5, perl 5.6
> >> and got the same error).
> >
> > This sounds familiar to me but I can't remember the details.
> >
> > The solution is to not use mapscript's DBF functions. I've never gotten
> > them to work. Use some other dbase module. I use XBase.pm
> > http://search.cpan.org/~janpaz/DBD-XBase-0.241/lib/XBase.pm to do all
> > dbf access of shapefiles.
> >
> > Eric
> >
>
> Will one of you enter this as a new MapScript-SWIG bug? If it turns
> out that
> none of us are using the msDBF* functions through mapscript, then I
> should see
> about removing them from the module.
>
> I too prefer to use XBase much of the time.
>
> For querying, use shapeObj::getValue() to get at the attributes of
> features.
> The following code
>
> for ($i=0; $i<$layer->{numitems}; $i++) {
> $att_name = $layer->getItem($i);
> $att_value = $shape->getValue($i);
> ...
>
> gets attribute names and items. It's a bit awkward that you can't get
> both from
> the same object. If you feel strongly about that, file a new feature
> enhancement
> in Bugzilla.
>
> cheers,
> Sean
Can it be removed? I was under the impression that TCL/MapScript needed it.
Lowell
More information about the MapServer-users
mailing list