ArcEngine开发连接PostgresSQL空间库Cannot connect to database because the database client software failed to
发布时间
阅读量:
阅读量
QQ交流群:607330463 GIS开发技术最强交流群 未经允许 禁止转载 可以参考
目录
1问题描述
2 问题解决
3代码介绍
1问题描述
ArcEngine的二次开发应用在连接postgresql数据库时可能存在无法识别的客户端连接问题。例如
报错:无法与数据库建立连接的原因是数据库客户端软件未能正确加载。
请确保数据库客户端软件已正确安装并配置完成。
2 问题解决
下载位置:ArcEngine与PostgresSQL之间的连接需要五个DLL文件的技术文档资源-下载
此时需要将这五个.dll复制到ArcEngine的bin目录下。

以管理员身份拷贝到该目录下

3代码介绍
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
IWorkspace workspace1 = connectPostsde("192.168.10.98", "ghsjdb", "ghsjdb", "ghsjdb");
IWorkspace workspace2 = connectPostsde("192.168.10.18", "sde", "sde", "sde");
System.Runtime.InteropServices.Marshal.ReleaseComObject(workspace1);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workspace2);
}
/// <summary>
/// 配置SDE连接PgsqlSde数据库
/// </summary>
/// <param name="serverIP">pgsql所在的服务器IP</param>
/// <param name="instance">pgsql的实例</param>
/// <param name="database">pgsqlsde数据库名称</param>
/// <param name="user">pgsqlsde帐号</param>
/// <param name="password">pgsqlsde密码</param>
/// <returns></returns>
public static IWorkspace connectPostsde(string serverIP, string user, string password, string database)
{
IWorkspace pWkspace = null;
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2 workspaceFactory = null;
ESRI.ArcGIS.esriSystem.IPropertySet pPropertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();
pPropertySet.SetProperty("SERVER", serverIP);
pPropertySet.SetProperty("INSTANCE", "sde:postgresql:" + serverIP);
//pPropertySet.SetProperty("DBCLIENT", "postgresql");
pPropertySet.SetProperty("AUTHENTICATION_MODE", "DBMS");
pPropertySet.SetProperty("USER", user);
pPropertySet.SetProperty("PASSWORD", password);
pPropertySet.SetProperty("DATABASE", database);
//pPropertySet.SetProperty("VERSION", "sde.DEFAULT");
workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2)new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
try
{
pWkspace = workspaceFactory.Open(pPropertySet, 0);
return pWkspace;
}
catch (Exception ex)
{
return null;
}
}
代码解读
全部评论 (0)
还没有任何评论哟~
