Instrução

Criar regras de atributos para acessar classes de feição em uma instância diferente do banco de dados

Last Published: June 28, 2024

Resumo

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.

Procedimento

Fluxo de trabalho para criar um link do banco de dados

  1. Abra o SQL Server Management Studio (SSMS) e conecte-se como administrador de banco de dados ou proprietário dos dados.
  2. Siga as instruções do artigo Criar servidores vinculados (Mecanismo do banco de dados SQL Server) no SQL Server Management Studio para criar um link para a instância SQL Server de destino.
    1. Na guia Geral, defina o Tipo de servidor para SQL Server, e na caixa de texto Servidor vinculado, digite o nome da instância (nome da máquina) ou endereço IP da máquina.
    2. Na guia Segurança, defina a opção de login de conexão como Ser feita usando este contexto de segurança e especifique o nome de usuário e a senha de Administrador do banco de dados ou do Proprietário dos dados da classe de feição que você está tentando acessar.
    3. Na guia Opções do servidor, defina RPC e RPC Out como Verdadeiro.
    4. Teste a conectividade clicando com o botão direito no servidor vinculado e selecione Testar conexão.

Criar uma visualização para acessar a classe de feição a partir do servidor vinculado

  1. No SSMS, clique em Nova consulta
  2. Revise e digite a seguinte consulta para criar uma visualização:
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')

 Criando a visualização em um editor SQL 

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].

  1. Execute a consulta para criar a visualização do banco de dados:
    • A visualização vw_FavoriteFoodandLocale_LS1 de DataAdmin. é criada e adicionada ao banco de dados.
    • Em seguida, acessaremos a visualização no ArcGIS Pro e a registraremos no geodatabase.
  2. Abra seu projeto do ArcGIS Pro.
  3. No painel Catálogo, se necessário, clique com o botão direito em Bancos de dados e conecte-se ao banco de dados que você está trabalhando estabelecendo uma Nova conexão do banco de dados.
  4. Expanda o banco de dados e confirme se a exibição que você criou está disponível.
  5. No painel Catálogo, no banco de dados, clique com o botão direito na visualização e escolha Registrar com geodatabase.
  6. No painel da ferramenta de geoprocessamento Registrar com geodatabase, defina os parâmetros necessários e execute a ferramenta.

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 suporte com IA

Resolva seu problema rapidamente com o chatbot de IA de suporte da Esri.

Comece a conversar agora

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Comece a conversar agora

Ir para as opções de download