Beruflich Dokumente
Kultur Dokumente
Datasets para quem não conhece são objetos do ADO.Net, com o objetivo de ser
o repositório de dados deste objeto, possuindo tabelas, colunas, linhas, etc. Um DataSet
Tipado é uma classe que traz toda a estrutura das tabelas e possibilita o acesso às
colunas do banco de dados como se fossem meras propriedades desta classe. Duas
grandes vantagens em utilizar DataSet Tipado são:
• Poder visualizar e utilizar as tabelas do banco de dados como objetos de
sua aplicação;
• Reutilizar o código, pois uma vez criado o DataSet Tipado a sua
reutilização será baseada em definir uma nova instância desta classe.
O Visual Studio 2005 faz com que trabalhar com DataSets Tipados seja um
trabalho simples, pois o seu editor gera o código básico de CRUD (Create, Read,
Update e Delete) da tabela escolhida com apenas alguns cliques de mouse.
Porém ao criar um DataSet Tipado, o Visual Studio não disponibiliza uma
maneira de configurar o CommandTimeOut para o nosso DataSet, ou seja, o tempo de
resposta fica limitado a 30 segundos (TimeOut Padrão).
Então, se há no banco de dados uma consulta ou mesmo uma Procedure cujo
tempo de resposta é superior a 30 segundos utilizar DataSet Tipado gerará erro em
tempo de execução de TimeOut de banco de dados, o que gerará insatisfação por parte
do cliente.
Como contornar essa limitação é o que vou demonstrar nesse artigo.
Primeiro passo será criar o DataSet Tipado, para tanto adicione um novo item do
tipo “DataSet” com o nome de “Cliente.xsd” ao seu projeto como a Figura 1.
Figura 1 – Cliente.xsd
Agora que o DataSet foi criado, precisamos criar uma nova classe com o nome
de “DataSetTimeOut”, onde será implementada a propriedade SelectCommandTimeOut
conforme a Figura 11.
Abra o arquivo para edição e substitua o conteúdo dele pelo código abaixo.
Imports Microsoft.VisualBasic
Namespace ClienteTableAdapters
Partial Class TbCadClienteTableAdapter
Public Property SelectCommandTimeout() As Integer
Get
Return Me.CommandCollection(0).CommandTimeout
End Get
Set(ByVal value As Integer)
Me.CommandCollection(0).CommandTimeout = value
End Set
End Property
End Class
End Namespace
Igor Musardo
ivmplayer@gmail.com