Use the oracle spatial tables in MapX
411363Jan 22 2004 — edited Jan 25 2004Hi:
I use Mapx4.51 delphi6 oracle8.16
When I use layerinfo object to download the oracle layer,I get the error as follows:
'DBMS Error,found Object column but no MapCatalog entry
exists'
Would You like Help me to resolve the problem?Thanks!!
I create a oracle spatial table like this:
--create spatial table
create TABLE CITY(
CITY_ID NUMBER CONSTRAINTS CID PRIMARY KEY,
CITYNAME VARCHAR2(10),
GEOLOC MDSYS.SDO_GEOMETRY
);
--insert point to table
INSERT INTO CITY VALUES(
1,
'SHIMEN',
MDSYS.SDO_GEOMETRY(
2001,
NULL,
MDSYS.SDO_POINT_TYPE (
30,
45,
NULL),
NULL,
NULL
)
);
INSERT INTO CITY VALUES(
2,
'SHEN',
MDSYS.SDO_GEOMETRY(
2001,
NULL,
MDSYS.SDO_POINT_TYPE (
30,
45,
NULL),
NULL,
NULL
)
);
--update
insert into USER_SDO_GEOM_METADATA
VALUES(
'CITY',
'GEOLOC',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X',0,180,0.005),
MDSYS.SDO_DIM_ELEMENT('Y',0,90,0.005)
),
NULL
);
--create spatial index
CREATE INDEX CITY_QINDX
ON CITY(GEOLOC)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS('SDO_LEVEL=6')
--The Mapinfo_mapcatalog table have existed ,so i insert
--a new entry to it.
insert into MAPINFO.MAPINFO_MAPCATALOG
(SPATIALTYPE,TABLENAME,OWNERNAME,SPATIALCOLUMN,DB_X_LL,DB_Y_LL,
DB_X_UR,DB_Y_UR,COORDINATESYSTEM,SYMBOL,XCOLUMNNAME,YCOLUMNNAME)
values
(13.0,'CITY','STUDY','GEOLOC',0,0,180,90,NULL,'SYMBOL(35,2,12)','NO_COLUMN','NO_COLUMN');
Now, When I use the layerinfo object I get this ERROR,I don't know how to resolve it!
Map1.Geoset :='';
qry := 'select * from CITY';
Conn := 'SRVR=ORAMAP;UID=study;PWD=study';
lInfo := CoLayerinfo.Create;
lInfo.Type_ := miLayerInfoTypeServer;
lInfo.AddParameter('name', 'MYCITY');
lInfo.AddParameter('ConnectString', Conn);
lInfo.AddParameter('toolkit', 'ORAINET');
lInfo.AddParameter('Query', qry);
lInfo.AddParameter('cache', 'ON');
lInfo.AddParameter('mbrsearch', 'OFF');
lInfo.AddParameter('AutoCreateDataset', 1);
lInfo.AddParameter('Datasetname', 'MYCITY_Dataset');
Map1.Layers.Add(lInfo,emptyparam);
The Error Information is:
'DBMS Error,found Object column but no MapCatalog entry
exists'.
The Mapinfo_mapcatalog table have been created by easyloader when I uploaded the ASIA.tab.
When I use these tables that were uploaded by easyloader ,I can USE these tables in my MapX application.
But if these spatial tables were created by me,these tables can't be used in my applicaton and I always get the error :'found Object column but no MapCatalog entry
exists'.
Thanks For YOUR Help!