Instrução
No artigo anterior sobre Criação de regras de atributos para acessar classes de feição em um banco de dados diferente, exploramos a criação e o registro de uma visualização que acesse uma classe de feição em um geodatabase diferente na mesma instância SQL Server. A visualização foi posteriormente usada na criação de uma Regra de atributos. Este artigo adota uma abordagem um pouco diferente ao criar a visualização em uma instância SQL Server separada. Isso é especialmente útil quando você não tem as permissões necessárias para consultar a classe de feição que deseja usar na criação da sua Regra de atributos.
Neste exemplo, usando Microsoft SQL Server, estamos tentando acessar a classe de feição FAVORITEFOODANDLOCALE, pertencente ao DataLabOwner, armazenada no geodatabase DataLab em uma instância diferente, na mesma rede. Para alcançar isso, precisamos criar um link do banco de dados para acessar os dados na instância separada.
Use sqlDatabase
Go
Create view DataAdmin.vw_FavoriteFoodandLocale_LS1
as
Select *
from
OPENQUERY([10.150.51.50],
'Select
OBJECTID,
Place,
Item,
IsBeverage,
State,
Shape,
GlobalID,
GDB_GEOMATTR_DATA
From DataLab.DataLabOwner.FAVORITEFOODANDLOCALE')
Neste exemplo, sqlDatabase é o banco de dados ativo na minha instância e o nome da visualização é vw_FavoriteFoodandLocale_LS1 com o proprietário do esquema como DataAdmin. O método OPENQUERY está sendo passado para nos permitir executar uma consulta direta para acessar tabelas no servidor vinculado [10.150.51.50].
A visualização é registrada no geodatabase e é acessível usando Arcade com a função $datastore ao configurar uma Regra de atributos, como mostrado no exemplo e na imagem abaixo.
var fnl = FeatureSetByName
($datastore,"DATAADMIN.vw_FavoriteFoodandLocale_LS1, ["Place"])
var ffnl = Intersects(fnl, $feature)
var F = First(ffnl)
//var NPharma = NearestCoordinate(Fpharma, $feature)
if (F == null) return {"errorMessage: "Outside the county"}
return F.Place

Essa Regra de atributos preenche um campo (FnL) em uma classe de feição de polígono (DATAADMIN.Counties) com o nome do lugar de uma camada de visualização (DATAADMIN.vw_FavoriteFoodandLocale_LS1) de intersecção, como mostrado na imagem a seguir.

Neste artigo, exploramos a criação de uma visualização no banco de dados SQL Server que faz referência a uma classe de feição de outro banco de dados em uma instância SQL Server diferente. Criamos um servidor vinculado à instância de destino ao nos conectarmos como proprietários dos dados, o que nos deu permissão para acessar e consultar a camada em nossa instância ativa.
Após registrar a visualização no banco de dados, conseguimos consultar a visualização via uma expressão Arcade ao configurar uma regra de atributos para gerar informações baseadas nos atributos da classe de feição na outra instância.
ID do Artigo: 000032575
Obtenha ajuda de especialistas do ArcGIS
Comece a conversar agora