SpatialWare Datablade module 3.0
Posted in 1998
Hi,
I testing datablade module with C - API for SpatialWare from MapInfo. I
have problem with sample program.
Prgogram core dump in last line at nlst_dump function.
When I debuging this program with gdb and print values
'buf' is
$1 = {st_geometry = 0x583c0ca, st_centroid = {x = 1542465.3467774028,
y = 3375467589.3683138, z = 48421672.351759702}, hg_orientation = {
x = 131072.00048209852, y = -1.7100569603632504e-282,
z = -7.2851991706825489e+37}, hg_envelope = {st_llb_point = {x = 0,
y = 3.2382544625372822e-319, z = 2.7957949023414405e-312},
st_urt_point = {x = -5.8552837933213611e+44, y =
1.1281735991651357e+190,
z = -5.8552764223799439e+44}}, hg_assembled = 1734623525}
but values 'in' is
Cannot access memory at address 0x583c0ca
file.ec
# include <st_spatialobject.h>
$ include sqlca;
main ()
{
$ var binary 'st_spatial' b_spatial;
ST_Spatial *buf=NULL;NLST in;
$DATABASE georgetown;
if (sqlca.sqlcode != 0 )
printf ("\\nCHYBA sqlca.sqlcode = %ld",sqlca.sqlcode);
else
printf ("\\nDatabase otevrena sqlca.sqlcode = %ld",sqlca.sqlcode);
ifx_var_flag(&b_spatial,1);
$ select sw_geometry INTO $b_spatial FROM parcel WHERE sw_member = 1 ;
if (sqlca.sqlcode != 0 )
printf ("\\nCHYBA SELECT sqlca.sqlcode = %ld",sqlca.sqlcode);else
printf ("\\nTaubulka otevrena sqlca.sqlcode = %ld",sqlca.sqlcode);
printf ("\\nDELKA %ld\\n",ifx_var_getlen(&b_spatial));
buf = (ST_Spatial *) ifx_var_getdata(&b_spatial );
if (buf == NULL )
printf ("Nic to nevratilo");
else
printf ("Neco tam je ");
in = buf->st_geometry;
nlst_dump(in);
Used software:
Solaris 2.6
Universal server 9.13.UC1 with datablade module SpatialWare.3.0
Peter