SqlConnection1.Open() – Sim, mas onde?!?


Já não é a primeira vez que vejo isso. Primeiramente em um outro lugar em que trabalhava, me disseram que o correto seria chamar o método Open da XXXConnection fora (antes) do bloco Try, e quando questionei o porque, não souberam me explicar. Vejo isso muitas vezes em fóruns e recentemente li um artigo em uma revista nacional em que o autor fazia isso. Exemplo:

          Dim conn As New SqlConnection(“CONNECTION_STRING”)
          ‘….
          ‘….
          conn.Open()
          Try
               ‘….

Pois bem, e se o servidor SQL Server estiver indisponível ou não existir o que acontecerá? O bloco Catch entrará em ação? Claro que não, pois a linha que gerou o erro, não está “gerenciada” pelo bloco Try e a Exception será atirada ao cliente. Pois bem, e porque será muitas pessoas insistem em dizer que o método acima é a forma correta de abrir a conexão com uma DB? Realmente estou muito curioso!

Outro código falho, é se fizer o seguinte:

          Dim conn As New SqlConnection(“CONNECTION_STRING”)
          ‘….
          ‘….          
          Try
               conn.Open()
               ‘….
               ‘….
               conn.Close()
          Catch ex As Expcetion
               ‘….

Isso também é bastante perigoso, já que se alguma Exception ocorrer depois da abertura da DB e antes do fechamento da mesma, logicamente a conexão com esta DB não fechará, e com isso, em breve o pool de conexões estoura, o que impedirá a sua aplicação e continuar a execução corretamente.

Esse tema também já foi discutido neste post, bem como as formas corretas de abrir e fechar a conexão, mas o fato de que as pessoas insistem em fazer dessa forma, ou seja, de abrir a conexão com a DB antes/fora do bloco Try ainda me deixa bastante confuso, onde não sei e gostaria de saber o que elas pensam a respeito. Será que alguém tem alguma explicação para tal?

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s