FME Object API Write to SDE30 空间表实例

//FME Object API Write to SDE30 空间表实例
//vp:hsg 
//create date:2012-07-06
        static void WriteExample_SDE()
        {
            // Creates the session
            IFMEOSession fmeSession = FMEObjects.CreateSession();
            fmeSession.Init(null);

            // Creates the oracle spatial writer
            IFMEOWriter fmeWriter = fmeSession.CreateWriter("SDE30", null);

            //日志文件设置
            string appPath = Assembly.GetExecutingAssembly().Location;
            int index = appPath.LastIndexOf("\\", appPath.Length - 1);
            string appFolder = appPath.Substring(0, index);
            string logFilePath = appFolder + "\\log.txt";
            //----------------
            //Get the log file object from the session
            IFMEOLogFile fmeLogFile = fmeSession.LogFile();
            //Set the path of the log file
            fmeLogFile.SetFileName(logFilePath, false);
            //----------------

            string FeatureType = "V_TDLYXZ_DLTB_H";


            IFMEOReader fmeReader = fmeSession.CreateReader("ORACLE8I", true, null);
            StringCollection readerParams = new StringCollection();
            #region //设置参数
            readerParams.Add("DATASET");
            readerParams.Add("xpserver");
            //
            readerParams.Add("USER_NAME");
            readerParams.Add("cdbfsgdb");
            //
            readerParams.Add("PASSWORD");
            readerParams.Add("1");
            //
            //打开图层名称(要素类)v_tdlyxz_dltb_h
            /**/
            readerParams.Add("DEF");
            readerParams.Add(FeatureType);
            //
            readerParams.Add("IDs");
            readerParams.Add(FeatureType);
            //
            readerParams.Add("WHERE_CLAUSE");
            readerParams.Add("zldwdm like '510113%' ");             
            //
            #endregion
            fmeReader.Open("xpserver", readerParams);  //oracle的net service名称xpserver

            StringCollection writerParms = new StringCollection();
            #region //设置参数
            writerParms.Add("SERVER");  //服务器
            writerParms.Add("rjb-scsup");   //服务器的值
            //
            writerParms.Add("INSTANCE");   //实例
            writerParms.Add("port:5151");  //实例的值
            //
            writerParms.Add("USERID");   //用户名
            writerParms.Add("sde");      //用户名的值
            //
            writerParms.Add("PASSWORD");   //密码
            writerParms.Add("sde");        //密码的值
            //
            writerParms.Add("VERSION_NAME");   //版本
            writerParms.Add("SDE.DEFAULT");    //版本的值
            //
            writerParms.Add("DEF");          //要写入的要素类
            writerParms.Add(FeatureType);    //要写入的要素类的值
            //
            writerParms.Add("IDs");          //要写入的要素类
            writerParms.Add(FeatureType);    //要写入的要素类的值
            //
            writerParms.Add("WRITER_MODE");
            writerParms.Add("INSERT");  //INSERT | UPDATE | DELETE
            //
            writerParms.Add("SIMPLIFY_GEOM");   
            writerParms.Add("YES");  //YES | NO

            #endregion
            fmeWriter.Open("rjb-scsup", writerParms);  //oracle的SDE名称rjb-scsup

            //插入原有要素(//读取要的数据要素)            
            bool bReadTrue = true;
            IFMEOFeature fmefeat_insert=null;
            int index_insert = 0;
            while (bReadTrue == true)
            {
                fmefeat_insert = fmeSession.CreateFeature();
                bReadTrue = fmeReader.Read(fmefeat_insert);
                if (bReadTrue == true)
                {
                    if (fmefeat_insert != null)
                    {                        
                        //fmeWriter.Write(fmedelfeat);
                        IFMEOFeature fmeFeature = fmeSession.CreateFeature();
                        fmeFeature.FeatureType = FeatureType;   //图层名称
                        fmeFeature.SetSequencedAttribute("fme_type", "fme_area");
                        fmeFeature.GeometryType = FMEOGeometry.Polygon;  //面
                        fmeFeature.Dimension = FMEODimension.Two;   //二维
                        fmeFeature.SetGeometry(fmefeat_insert.GetGeometry()); //图形
                        fmefeat_insert.CloneAttributes(fmeFeature);           //属性
                        //
                        fmeWriter.Write(fmeFeature);
                        //
                        index_insert += 1;
                        Console.WriteLine("插入要素index=" + index_insert);
                    }
                }
            }
            fmeReader.Dispose();
            fmeReader = null;


            #region //创建一个新要素 Creates a feature to write out
            /*
            IFMEOFeature fmeFeature = fmeSession.CreateFeature();
            fmeFeature.FeatureType = FeatureType;   //图层名称
            fmeFeature.SetSequencedAttribute("fme_type", "fme_area");
            fmeFeature.GeometryType = FMEOGeometry.Polygon;  //面
            fmeFeature.Dimension = FMEODimension.Two;   //二维
            fmeFeature.Add2DCoordinate(5, 5);
            fmeFeature.Add2DCoordinate(5, 10);
            fmeFeature.Add2DCoordinate(10, 10);
            fmeFeature.Add2DCoordinate(5, 5);
            //            
            fmeFeature.SetStringAttribute("FID", System.Guid.NewGuid().ToString());
            fmeFeature.SetStringAttribute("zldwdm","51011300X");
            // Writes the created feature. A table named DRAWING will be created.
            fmeWriter.Write(fmeFeature);
             */
            #endregion

            // Closes the writer
            fmeWriter.Close();
            fmeWriter.Dispose();
        }
----the--end---

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值