ThinkGeo.com    |     Documentation    |     Premium Support

Oracle dependencies cannot be found

            string connectString = "User ID=map;Password=123456;Data Source=192.168.14.31/orcl;";

            OracleFeatureLayer oracleLayer = new OracleFeatureLayer(connectString, "area", "fid");



           Exception : Oracle dependencies cannot be found.

help me

Hi Zhang, 
  
 The Oracle dependencies are not packaged in our installer by default as they are too large. Now, please download them from thinkgeo.com/forums/MapSuite/tabid/143/aft/11687/Default.aspx 
  
 After download it, unzip them and copy them to sysmteFolder(system32 or syswow64)=>MapSuite 7.0 
 Then try it again. 
  
 If the issue still persists, please feel free to let us know. 
 Regards, 
 Johnny

Hi Johnny  

Thanks 

Now I want to  add Feature  to the OracleFeaturelayer  ,but  it didn’t work    



code:



             string connectStr = “User ID=map;Password=123456;Data Source=192.168.14.168/local;”;
            OracleFeatureLayer oracleLayer = new OracleFeatureLayer(connectStr, “LAYOUTDIAGRAM”, “OBJECTID”);



            try
            {
                oracleLayer.Open();
                RectangleShape rs = new RectangleShape(45, 50, 70, 35);


                PolygonShape ps = rs.ToPolygon();
                Feature feature_ps = new Feature(ps);
                feature_ps.ColumnValues.Add(“MAX_ROW_NUM”, “0”);
                feature_ps.ColumnValues.Add(“GRIDNAME”, “0”);
                feature_ps.ColumnValues.Add(“AREA_NUM”, “0”);
                feature_ps.ColumnValues.Add(“BAY_NUM”, “0”);
                feature_ps.ColumnValues.Add(“ROW_NUM”, “0”);
                feature_ps.ColumnValues.Add(“MAX_TIER_NUM”, “0”);
                oracleLayer.FeatureSource.Open();
                oracleLayer.FeatureSource.BeginTransaction();
                oracleLayer.FeatureSource.AddFeature(feature_ps);
                oracleLayer.FeatureSource.CommitTransaction();


                oracleLayer.FeatureSource.Close();
                oracleLayer.Close();
            }


            catch (Exception ex)
            {
Console.WriteLine(ex.Message);


}







NO DATA added;

Hi Zhang, 
  
 It’s hard for us to figure out the root of the issue based on those codes without data. Would you please register the ExecutingSqlStatement event to the OracleFeatureLayer and get the sqlStatement from the event parameter. Then run the sql statement in your oracle database to see if there are any issues in the sql statement? 
  
 Regards, 
 Johnny





SELECT allColumns.COLUMN_NAME, geomMetaData.SRID FROM ALL_TAB_COLUMNS allColumns, USER_SDO_GEOM_METADATA geomMetaData WHERE allColumns.TABLE_NAME=‘LAYOUTDIAGRAM’ AND allColumns.DATA_TYPE=‘SDO_GEOMETRY’ AND allColumns.TABLE_NAME= geomMetaData.TABLE_NAME AND allColumns.owner='JZXTXH’

select tableName.SHAPE.SDO_GTYPE from JZXTXH.LAYOUTDIAGRAM tableName WHERE ROWNUM <= 1

declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;

“System.NullReferenceException”类型的第一次机会异常在 Oracle.DataAccess.dll 中发生

SELECT allColumns.COLUMN_NAME, geomMetaData.SRID FROM ALL_TAB_COLUMNS allColumns, USER_SDO_GEOM_METADATA geomMetaData WHERE allColumns.TABLE_NAME=‘LAYOUTDIAGRAM’ AND allColumns.DATA_TYPE=‘SDO_GEOMETRY’ AND allColumns.TABLE_NAME= geomMetaData.TABLE_NAME AND allColumns.owner='JZXTXH’

select tableName.SHAPE.SDO_GTYPE from JZXTXH.LAYOUTDIAGRAM tableName WHERE ROWNUM <= 1

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(88.875,-1.125,113.625,23.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(88.875,21.375,113.625,46.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(111.375,21.375,136.125,46.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(111.375,-1.125,136.125,23.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(66.375,21.375,91.125,46.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(66.375,-1.125,91.125,23.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(66.375,-23.625,91.125,1.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(88.875,-23.625,113.625,1.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(111.375,-23.625,136.125,1.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(133.875,-23.625,158.625,1.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(133.875,-1.125,158.625,23.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(133.875,21.375,158.625,46.125)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(133.875,43.875,158.625,68.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(111.375,43.875,136.125,68.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(88.875,43.875,113.625,68.625)),‘MASK=ANYINTERACT’)='TRUE’

SELECT tableName.SHAPE,OBJECTID FROM JZXTXH.LAYOUTDIAGRAM tableName,USER_SDO_GEOM_METADATA tableMetaData WHERE tableMetaData.TABLE_NAME=‘LAYOUTDIAGRAM’ AND SDO_RELATE(SHAPE,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(66.375,43.875,91.125,68.625)),‘MASK=ANYINTERACT’)=‘TRUE’


Hi Zhang, 
  
 I noticed the exception is from “Oracle.DataAccess.dll” and seems it is from the application rather than oracle database. Would you please run the sql statement from the events in the oracle database? as I need to check if there is any syntax issue in the string. 
  
 Besides, the information here you provide for us didn’t help us to figure out the issue. Would you please provide us more details about the exception or a “self-contain” sample is highly appreciated? Also, if there is any possible to export structure and data from your oracle database? 
  
 Johnny

Hi Johnny





this sql    "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;" throw Exception 







   ORA:01008  

error 












Hi Zhang, 
  
 It looks your exception comes from Oracle database but not our map control. 
  
 I am sorry but I am not good at Oracle database related. 
  
 I did a quickly Google, it said “ORA-01008 : Not all variables bound, you are attempting to use a bind variable that is not bound to a value.”  
  
 And someone give a workaround maybe helpful in this topic: stackoverflow.com/questions/9742527/how-can-i-copy-a-blob-from-a-parameter-to-a-local-variable-in-oracle-pl-sql, it ask you use DEFAULT in a variable declaration. 
  
 If that haven’t solved your problem, I think you should want to Google for deeper information. 
  
 Regards, 
  
 Don



Thanks Don



I want to use OracleFeatureLayer  add a Feature to OracleDB? Can you  give me an Example?

Hi Zhang,  
  
 This code works for us. 
  
 
string connectString = "User ID=userId;Password=password;Data Source=192.168.0.100/orcl;";
OracleFeatureLayer oracleLayer = new OracleFeatureLayer(connectString, "USSTATES", "RECID");
oracleLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;
oracleLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
Feature newFeature = new Feature("Polygon((0 0,10 10,10 0,0 0))");
newFeature.ColumnValues.Add("STATE_NAME", "NewState");
oracleLayer.Open();
oracleLayer.FeatureSource.BeginTransaction();
oracleLayer.FeatureSource.AddFeature(newFeature);
oracleLayer.FeatureSource.CommitTransaction();
oracleLayer.FeatureSource.Close();
 
 
  
 Regards, 
  
 Don

Hi Don  





Not from the assembly "OracleApiWrapperX64, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null" load type "ThinkGeo. MapSuite. Core. DatabaseConnectionMode".

Hi Zhang, 
  
 Sorry I am not very sure about your last reply. 
  
 Could you please describe it for detail? Any screen capture, exception logs or sample should be helpful. 
  
 Regards, 
  
 Don

Hi, Don   
 i use same code with zhang,the error is samed. 
  
 oracleLayer.FeatureSource.CommitTransaction(); 
 the message of result is    "Object reference not set to an instance of an object."

Hi Ren, 
  
 I can’t reproduce this issue, Could you please describe it for detail? Any screen capture, exception logs or sample should be helpful. 
  
 Regards, 
 Casper



Hi Don: 



oracleLayer.FeatureSource.CommitTransaction(); Throw Exception  {"The FeatureSource is not open.   Please call the Open method before calling this method."} System.Exception {System.InvalidOperationException}




Hi Zhang, 
  
 Have you called the oracleLayer.Open();  before you call CommitTransaction()? 
  
 Regards, 
  
 Don

Hi Don , oracleLayer is opened 





  OracleFeatureLayer oracleLayer = new OracleFeatureLayer(connectString, "LIGHT", "FID");
                oracleLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;


                oracleLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                Feature newFeature = new Feature(new PointShape(123,22));
                oracleLayer.Open();
                oracleLayer.FeatureSource.Open();
                oracleLayer.FeatureSource.BeginTransaction();
                oracleLayer.FeatureSource.AddFeature(newFeature);
                oracleLayer.FeatureSource.CommitTransaction();
                oracleLayer.FeatureSource.Close();
                oracleLayer.Close();

//





Hi Zhang, 
  
 That’s strange because your exception says this layer haven’t been opened. 
  
 We need to recreated that local because I still haven’t reproduced that succeed. 
  
 Could you please make sure some items as below: 
  
 1. Reproduce this issue on another machine with another Oracle table. 
 2. Add break point, make sure oracleLayer succeed connect to Oracle database and can get boundingbox from it without exception. 
 3. Copy detail exception information in CallStack. 
 4. Try to build a really simple sample for reproduce it. 
  
 Regards, 
  
 Don  


Dear Don,



I faced a very similar issue. After a lot of debugging and testing, if found the problem, but I didn’t made the solution because it is from your built assemblies.

I am using the “Strong named” version of the MapSuite WPF Edition. And I am trying the new “FileGeoDatabaseLayer” from the MapSuite 7.

I faced the same problem “Could not load file or assembly MapSuiteCore.dll …”.

I found first that I must copy “MapSuite 7.0” from SYSWOW64 to SYSTEM32, which is must exists by default. This is the first problem.

The cause was that “FileGeodatabaseWrapper.dll” is referencing “MapsuiteCore.dll publickeytoken=null”, while i am using the “Strong Named” version. This is the second problem.





So, you must solve this quickly, cause I couldn’t use the non “Strong Named” version of your dlls.

Waiting for your reply ASAP.



Thanks