none
Dados Freeze RRS feed

  • Pergunta

  • Bom dia, Galera.

    Se alguém puder me dar alguma dica agradeço.

    Tenho uma aplicação em C# e preciso efetuar a leitura de uma tabela X de um outro banco de dados e servidores diferentes de onde eu rodo minha aplicação.

    Minha dúvida é como efetuar a leitura dessa tabela e deixar essa tabela freezada, para que ninguém consiga atualizar nela, talvez efetuar consulta.

    O banco de dados está em SQL.

    Marcos

    quinta-feira, 6 de outubro de 2016 14:39

Respostas

  • Olá,

    Em relação a fazer a leitura de um Banco que não esteja no mesmo servidor é tranquilo, basta apenas definir o endereço correto na sua connection string.

    Em relação a deixar uma tabela em estado "freeze" acredito que seria bom fazer um controle para que o seu próprio sistema faça esse gerenciamento (se a tabela está ou não bloqueada).

    Por exemplo, ao começar a realizar determinado procedimento você define em alguma outra tabela de controle que a determinada tabela não pode ser alterada. E faz uma verificação nessa tabela antes de realizar qualquer update ou insert. Acredito que dessa forma você tenha mais controle e o melhor você mantém essa lógica na aplicação, fica muito mais fácil gerenciar.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Sugerido como Resposta André SeccoMVP quinta-feira, 6 de outubro de 2016 16:33
    • Marcado como Resposta Muekita sexta-feira, 7 de outubro de 2016 13:28
    quinta-feira, 6 de outubro de 2016 16:33

Todas as Respostas

  • Um outro banco no mesmo servidor? Caso sim, basta criar uma view no banco que aponte para a tabela do outro banco.

    Caso nao seja no mesmo sevidor, sugiro criar um linked server.

    Voce tambem pode criar uma segunda conection string na sua aplicaçcao, mas eu nao recomendo essa abordagem.

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 6 de outubro de 2016 14:56
    Moderador
  • Olá,

    Em relação a fazer a leitura de um Banco que não esteja no mesmo servidor é tranquilo, basta apenas definir o endereço correto na sua connection string.

    Em relação a deixar uma tabela em estado "freeze" acredito que seria bom fazer um controle para que o seu próprio sistema faça esse gerenciamento (se a tabela está ou não bloqueada).

    Por exemplo, ao começar a realizar determinado procedimento você define em alguma outra tabela de controle que a determinada tabela não pode ser alterada. E faz uma verificação nessa tabela antes de realizar qualquer update ou insert. Acredito que dessa forma você tenha mais controle e o melhor você mantém essa lógica na aplicação, fica muito mais fácil gerenciar.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Sugerido como Resposta André SeccoMVP quinta-feira, 6 de outubro de 2016 16:33
    • Marcado como Resposta Muekita sexta-feira, 7 de outubro de 2016 13:28
    quinta-feira, 6 de outubro de 2016 16:33
  • André , 

    Grato pela ajuda.

    Tem uma parte que eu me expressei errado, a parte de conectar tranquilo.

    A minha maior duvida é qual a melhor forma de fazer esse freeze.

    O meu problema é que essa é uma tabela de terceiro e eu não tenho esse controle que vc sugeriu.

    Se tiver mais alguma ideia.

    Agradeço.

    Marcos


    quinta-feira, 6 de outubro de 2016 17:09
  • Quando voce cria uma view automaticamente ela é somente leitura.

    Para ficar mais seguro ainda, sugiro que este terceiro crie uma view da tabela em questao, expondo somente os campos necessarios.

    Depois é so referenciar essa view no seu banco de dados através de LinkedServer ou, caso seja no mesmo servidor, diretamente desta forma:

    Select campo1, campo2, campo3 from BancoTerceiro..ViewTerceiro

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 6 de outubro de 2016 17:17
    Moderador
  • William, 

    Grato pela ajuda.

    Mas a view não funcionaria.

    Eu preciso que esta tabela esteja freezada, pois no final do meu processo terei q atualizar um campo mas eqto eu não atualizo ninguem pode atualizar nada nesta tabela.

    Marcos

    quinta-feira, 6 de outubro de 2016 17:45
  • O aplicativo/sistema é seu ou é de terceiros também?

    Na minha dica anterior não é necessário modificar a tabela que está querendo realizar o bloqueio. Você irá criar uma outra tabela ou alguma estrutura de armazenamento que deseje para controlar apenas essa permissão de escrita.

    Entendeu?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quinta-feira, 6 de outubro de 2016 17:50
  • Nao existe este conceito de freeze. Voce pode limitar o acesso de escritura, mas uma tabela sempre vai aceitar modificaçoes (caso haja direitos para tal)

    Um freeze de uma tabela é uma View.

    Eu nao sei que tipo de acordo que voce tem com esse terceiro, mas no meu caso funciona assim:

    O terceiro me fornece uma view com os dados pertinentes da tabela que eu preciso.

    Caso eu precise retornar algo, ele me fornece uma tabela onde eu posso escrever e uma trigger nessa tabela atualiza a tabela oficial. Desta forma os dois sistema ficam isolados.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 6 de outubro de 2016 18:17
    Moderador