SDE连接数据库有两种方式:直接连接和通过SDE连接;直接连接数据处理是在客户端,通过SDE连接数据处理在服务器端;两者只是 属性参数设置不同。下面是C#示例代码:
客户端负载连接就是通过SDE访问数据表,并在本地完成对数据的各种操作(像空间分析,编辑等),而服务器端负载就是通过SDE访问数据表后,在服务器端完成对数据的各种操作,再把操作结果返回客户端。
因此即便服务器上SDE服务没有启动,采用客户端负载连接的方式也可以访问和操作SDE数据库,而服务器端负载连接只有在SDE服务启动后才能访问和操作SDE数据库。
IPropertySet oProperSet = new PropertySetClass();
try
{
//服务器端
oProperSet.SetProperty("Server", strServerName);
//设置SDE的端口,这是安装时指定的,默认安装时"port:5151"
oProperSet.SetProperty("Instance", strInstance);//default port:5151
oProperSet.SetProperty("Database", strDatabaseName);
oProperSet.SetProperty("User", strUser);
oProperSet.SetProperty("Password", strPassword);
oProperSet.SetProperty("Vesion", "SDE.DEFAULT");
//客户端
oProperSet.SetProperty("Server", null);
oProperSet.SetProperty("Instance", strInstance);//if the database is oracle9i,then SDE:oracle9i;
oProperSet.SetProperty("Database", strDatabaseName);
oProperSet.SetProperty("User", strUser);
oProperSet.SetProperty("Password", "");
IWorkspace oWorkspace = oWorkspaceFactory.Open(oProperSet,0);
}
客户端负载连接就是通过SDE访问数据表,并在本地完成对数据的各种操作(像空间分析,编辑等),而服务器端负载就是通过SDE访问数据表后,在服务器端完成对数据的各种操作,再把操作结果返回客户端。
因此即便服务器上SDE服务没有启动,采用客户端负载连接的方式也可以访问和操作SDE数据库,而服务器端负载连接只有在SDE服务启动后才能访问和操作SDE数据库。