zoukankan      html  css  js  c++  java
  • C#+ArcEngine创建企业数据库、连接及相关

    /// <summary>
    /// 创建SQLServer企业数据库(数据库拥有者:DBO)
    /// </summary>
    public string CreateEnterpriseDB(string sInstance, string sDBName, string sUser, string sPassword, string LienseFilePath)
    {

    Geoprocessor gp = new Geoprocessor();
    gp.OverwriteOutput = true;

    ESRI.ArcGIS.DataManagementTools.CreateEnterpriseGeodatabase cedb = new ESRI.ArcGIS.DataManagementTools.CreateEnterpriseGeodatabase();

    cedb.database_platform = "SQL_Server";
    cedb.instance_name = sInstance;
    cedb.database_name = sDBName;
    cedb.database_admin = sUser;
    cedb.database_admin_password = sPassword;
    cedb.sde_schema = "DBO_SCHEMA";
    cedb.gdb_admin_name = "";
    cedb.gdb_admin_password = "";

    cedb.authorization_file = LienseFilePath.ToString();//授权文件,本例用的是ArcGIS 10.2的授权文件
    try
    {
    gp.Execute(cedb, null);
    }
    catch
    {
    string str = "";
    for (int i = 0; i < gp.MessageCount; i++)
    {
    str += gp.GetMessage(i);
    str += " ";
    }
    return str;
    }
    return null;
    }

    /// <summary>
    /// 创建SQLServer数据库连接
    /// </summary>
    /// <param name="sInstance">地址</param>
    /// <param name="sDBName">数据库名</param>
    /// <param name="sUserName">用户名</param>
    /// <param name="sPassword">密码</param>
    public string CreateSqlConnection(string sInstance, string sDBName, string sUserName, string sPassword, string SdeFilePath)
    {

    Geoprocessor gp = new Geoprocessor();
    gp.OverwriteOutput = true; //覆盖原有文件并重写
    ESRI.ArcGIS.DataManagementTools.CreateDatabaseConnection CreateDBConnection = new ESRI.ArcGIS.DataManagementTools.CreateDatabaseConnection();
    //设置sde默认文件夹路径
    CreateDBConnection.out_folder_path = SdeFilePath;
    //数据库连接文件的名称
    CreateDBConnection.out_name = "ConnectionTo" + sDBName.ToString();
    //数据库连接平台
    CreateDBConnection.database_platform = "SQL_SERVER";
    //数据库连接实例:本机的IP地址或计算机名
    CreateDBConnection.instance = sInstance;
    //连接的数据库用户名"sa"
    CreateDBConnection.username = sUserName;
    //连接的数据库密码"123@abcd"
    CreateDBConnection.password = sPassword;
    //此数据库为SQL Server 中已经存在的数据库(不是空间库)
    CreateDBConnection.database = sDBName;
    CreateDBConnection.version_type = "TRANSACTIONAL";
    CreateDBConnection.account_authentication = "DATABASE_AUTH";
    try
    {
    gp.Execute(CreateDBConnection, null);
    }
    catch (Exception E)
    {
    string str = "";
    for (int i = 0; i < gp.MessageCount; i++)
    {
    str += gp.GetMessage(i);
    str += " ";
    }
    return str;

    }
    return null;

    }

    /// <summary>
    /// 创建ORCL数据库连接
    /// </summary>
    /// <param name="sDBName"></param>
    /// <param name="sUserName"></param>
    /// <param name="sPassword"></param>
    /// <param name="SdeFilePath"></param>
    /// <returns></returns>
    public string CreateOrclConnection(string sDBName, string sUserName, string sPassword, string SdeFilePath)
    {
    Geoprocessor GP = new Geoprocessor();
    GP.OverwriteOutput = true; //覆盖原有文件并重写

    //创建数据库连接文件(.sde)
    ESRI.ArcGIS.DataManagementTools.CreateDatabaseConnection createdbconnection = new ESRI.ArcGIS.DataManagementTools.CreateDatabaseConnection();
    //设置sde默认文件夹路径
    createdbconnection.out_folder_path = SdeFilePath;
    //数据库连接文件的名称
    createdbconnection.out_name = "ConnectionTo" + sDBName.ToString();
    //数据库连接平台
    createdbconnection.database_platform = "ORACLE";
    //数据库连接实例
    createdbconnection.instance = sDBName;
    //连接的数据库用户名
    createdbconnection.username = sUserName;
    //连接的数据库密码
    createdbconnection.password = sPassword;

    try
    {
    GP.Execute(createdbconnection, null);

    }
    catch (Exception E)
    {
    string str = "";
    for (int i = 0; i < GP.MessageCount; i++)
    {
    str += GP.GetMessage(i);
    str += " ";

    }
    return str;
    }

    return null;
    }

    /// <summary>
    /// 数据库转空间库
    /// </summary>
    public string ConvertDB2GeoDB(string sInstance, string SdeFilePath, string LienseFilePath)
    {
    //sde文件的全名
    string SdeConnFilePathName = SdeFilePath + @"ConnectionTo" + sInstance + ".sde";

    Geoprocessor gp = new Geoprocessor();
    gp.OverwriteOutput = true;
    ESRI.ArcGIS.DataManagementTools.EnableEnterpriseGeodatabase enabledb = new ESRI.ArcGIS.DataManagementTools.EnableEnterpriseGeodatabase();

    //使用上一步创建好的数据库连接文件
    enabledb.input_database = SdeConnFilePathName;
    enabledb.authorization_file = LienseFilePath.ToString();
    try
    {
    gp.Execute(enabledb, null);
    }
    catch (Exception e)
    {
    string str = "";
    for (int i = 0; i < gp.MessageCount; i++)
    {
    str += gp.GetMessage(i);
    str += " ";
    }
    return str;
    }
    return null;
    }

  • 相关阅读:
    Vue 中的无状态组件
    如何在 Vue 中使用 JSX 以及使用它的原因
    webpack打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)
    watch监听对象
    微信小程序动态设置图片大小
    Flutter的生命周期和路由
    两个字符串的编辑距离学习[转载]
    系统进化树怎么看[转载]
    感知机PLA算法实现[转载]
    余弦相似度计算[转载]
  • 原文地址:https://www.cnblogs.com/khfang/p/5783158.html
Copyright © 2011-2022 走看看