VB e SQLServer - O Acesso aos dados e a migração.
Se você até hoje tem desenvolvido suas aplicações para banco de dados usando a plataforma Access e nunca se preocupou em saber como usar uma outra plataforma para banco de dados. Se você esta tranquilo e orgulhoso , usando o seu 'banquinho' de dados Access e nem sonha em ter que migrar para outro banco de dados. |
Se você acha que esta tudo bem como esta , e, que não se 'mexe em time que esta ganhando' ... Ao ler este artigo você pode ter as seguintes reações:
1-) Indiferente - "Afinal eu sou o bom e não tenho que dar ouvidos a qualquer artigo que se lê por ai...
2-) Especulativo - "Bem , na verdade tudo esta bem , mas eu sei que com a internet as mudanças virão ; então antes que eu seja pego desprevenido vou verificar melhor esta possibilidade...
3-) Desesperado - " Meu Deus !!! amanhã mesmo vou migrar todas as minhas aplicações ..."
Espero que sinceramente você esteja enquadrado no item 2 . Eu a chamaria de a opção do bom senso. Mas por que tudo isto ? Do que vamos tratar aqui ??
Vamos tratar em como usar o seu VB com o banco de dados SQL Server no ambiente Cliente/Servidor e como migrar seus aplicativos para esta plataforma.
O que é mesmo um ambiente Cliente/Servidor ?
O ambiente Cliente/Servidor para uma aplicação de banco de dados é um sistema no qual uma aplicação , o servidor de banco de dados , é utilizado para armazenar e manipular os dados. Outra aplicação , o cliente do banco de dados , é utilizado para apresentar os dados ao usuário. Podemos enquadrar nesta última categoria tanto o Visual Basic como o Microsoft Access . Como servidores de banco de dados podemos citar : SQL Server , Oracle , Informix , Sybase e DB/2 .
A idéia principal da arquitetura Cliente/Servidor é que tanto o cliente como o Servidor são inteligentes e especializados nas tarefas que se propõe a fazer.
Quais os benefícios da arquitetura Cliente/Servidor ?
1-) Especialização : Cada componente em uma aplicação cliente/servidor pode ser designada e otimizada para realizar uma tarefa específica. Ex: O SQL Server é especializado em processar consultas e gerenciar os dados.
2-) Segurança : No Caso do SQL Server podemos aplicar os direitos dos usuários usando a segurança do Windows NT ou do SQL Server. Cada login pode ter um perfil definido para cada banco de dados. As permissões aos objetos ( tabelas , stored procedures ,etc..) podem ser atribuídas ou revogadas a nível de usuário ou de grupos. A Aplicação Cliente nada precisa fazer quanto a segurança , o trabalho fica por conta do SQL Server.
3-) Integridade : O servidor do Banco de dados além de gerenciar o armazenamento dos dados também controla todos os direitos para modificar ou excluir os dados. Além disso possui mecanismos para recuperação de dados em caso de uma corrupção de arquivos. Em uma aplicação usando o Access um usuário pode simplesmente deletar a base de dados.
4-) Desempenho : Aplicações usando o Access podem enfrentar problemas de desempenho em uma rede quando gerencia uma grande quantidade de dados. No ambiente cliente/servidor a aplicação somente solicita os dados e os resultados são processados e devolvidos ao Cliente.
Quando migrar para uma arquitetura Cliente/Servidor
1-) O tamanho do banco de dados : O tamanho do banco de dados é um dos principais fatores a considerar ao planejar uma migração para a arquitetura cliente/servidor. Não existe uma lei definida , cada caso deve ser estudado com cuidado , mas você pode começar a considerar uma migração quando sua base de dados estiver se aproximando dos 100-200 MB.
2-) A complexidade do Banco de dados : Outro fator que pesa bastante numa possível migração é uma base de dados grande e complexa. Quando falamos em complexidade estamos falando na quantidade de tabelas que a base de dados possui , nos relacionamentos entre as mesmas e nas junções entre as tabelas quando da criação de consultas.
3-) Número de usuários: A concorrência é outro fator muito importante a considerar , enquanto uma base de dados Access suporta no máximo o acesso simultâneo de até 255 usuários ( de 10 a 20 usuários é o número ideal .). O SQL Server suporta bem mais que isto.
4-) O Compartilhamento de dados : O SQL Server pode compartilhar dados com outras aplicações além do Access e do Visual Basic.
5-) Outras características específicas : O SQL Server permite a você realizar um backup da base de dados enquanto os usuários a estão utilizando . Já tentou fazer isto com o Access ??? . O SQL Server mantém um log de transações o que permite recuperação de dados em caso de falhas sem ter que fazer um backup completo.
ODBC , OLE DB e ADO
Ao desenvolver aplicações cliente/servidor é muito importante como você vai fazer a conexão entre a interface ( Cliente) e a base de dados ( Servidor ). Num passado recente os drivers ODBC eram bastante usados , hoje com o advento da ADO e OLE DB são , e , com a disponibilização de novos provedores , seu uso esta declinando.
ODBC - Open Database Connectivity - A maneira antiga de se fazer uma conexão com as bases de dados relacionais. As interfaces DAO - Data Access Object - e RDO - Remote Data Object - utilizavam os drivers ODBC para acessar as fontes de dados. ODBC é um conjunto de API de baixo nivel onde o desenvolvedor tem que gerenciar a alocação da memória. Para se ter uma ídeia existem uns 100 drivers ODBC em uso atualmente.
OLE DB - ( Não é um acrônimo ) - OLE DB é a mais recente maneira de acessar base de dados relacionais e não relacionais. Diferentes tipos de interfaces OLE DB , ou provedores , são escritos para cada tipo de fonte de dados. Como é uma tecnologia ainda recente , não existem , ainda, provedores OLE DB para alguns tipos de de fonte de dados. Enquanto isto você pode usar a OLE DB como uma fina camada sobre o ODBC até que o provedor esteja disponível.
ADO - ActiveX Data Objects - O novo objeto baseado no modelo COM que permite acessar e manipular fonte de dados OLE DB. Além de ser mais simples que DAO e RDO , ADO não utiliza as várias camadas para acesso a dados.
A escolha agora é muito fácil : se existir um provedor OLE DB , use ADO . Se não existir um provedor OLE DB nativo para a fonte de dados escolha um provedor OLE DB para ODBC.
As vantagens de usar ADO
ADO utiliza menos memória de suas aplicações.
ADO esta otimizada para acesso através da internet ou intranet , com isto temos menos trafego na rede
ADO suporta cursores complexos , incluíndo o cursor batch, e os cursores : client-side e server-side.
Usando ADO
Para utilizar ADO em suas aplicações Visual Basic , você precisa avisar o VB que você esta usando um objeto externo. Você faz isto simplesmente fazendo uma referência a Microsoft ActiveX Data Object 2.X Library no menu Project | References. (Naturalmente a ADO deve estar instalada no seu equipamento)
Iniciando uma conexão
Antes de iniciar uma conexão com um banco de dados SQL Server vejamos alguns conceitos básicos: Usando um DSN para ODBC e usando um UDL para OLE DB.
O que é um DSN ?
Um Data Source Name ( DSN ) armazena informação sobre a conexão com sua base de dados requeridas pelo driver ODBC : localização , tipo de servidor , informação sobre segurança , etc. Para criar o seu próprio DSN , selecione Iniciar| Configurações|Painel de Controle | ODBC Data Source
|
|
|
|
Na próxima janela clique no botão Concluir> , e você deverá obter a janela a seguir com o resumo de seu DSN criado. Para testar o DSN recém criado clique no botão - Test Data Source.. . A janela da direita será exibida indicando que o teste foi realizado com sucesso. Pronto !! temos um DSN chamado ConSQLServer para conexão com o SQL Server no banco de dados Pubs.
O que é um UDL ?
Um UDL - Universal Data Link - é o equivalente a um arquivo DSN para um provedor OLE DB. Um UDL armazena informacão necessária a uma conexao com um banco de dados , tais como : o nome do servidor, o provedor utilizado , o método de segurança e o login a ser utilizado.
A vantagem de usar um UDL é que ele é mais fácil distribuir pois e um arquivo texto e nao precisa ser registrado pelo sistema operacional. Para criar um UDL siga os seguintes passos :
Ative o Windows Explorer e selecione a pasta (a pasta do seu projeto) para a qual deseja criar um novo UDL .
Selecione a opção Novo (New) do menu Arquivo do Windows Explorer
Selecione a opção Microsoft Data Link
Informe o nome da UDL (Ex: Teste.udl )
Clique duas vezes no arquivo para que a janela das propriedades seja aberta
Selecione a aba Provider
Selecione o provedor da lista (Ex: Microsoft Jet 4.0 OLE DB para Access ou Microsoft OLE DB Provider for SQl Server para SQL Server)
Selecione a aba Connection
Selecione o banco de dados para conexão
Clique no botão - Test Connection - para testar a conexão
Clique em OK para salvar o arquivo UDL.
Abaixo o código usado para abrir uma conexão ADO usando a UDL teste.udl . Neste caso a UDL teste.udl esta realizando uma conexão com a base de dados Biblio.mdb:
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.Open "File Name=teste.udl;" rs.open "Authors" , conn , adOpenKeyset , adLockReadOnly rs.movelast debug.print rs.recordcount rs.close conn.close |
A próxima etapa será mostrar como fazer uma conexão com um banco de dados SQL Server 2000 usando a ADO - ActiveX Data Object.
Veja a continuação no artigo : Acessando dados no SQL Server com o VB
Referências: