VB - Programação com Banco de dados : DAO, ADO, ODBC (revisão)
Eu sei que tem muita gente que ainda usa o Visual Basic 6 e que existem muitos sistemas desenvolvidos nesta linguagem que vão precisar de manutenção por muito tempo. |
Lembrar disso me faz não abandonar totalmente a essa versão anterior do VB .NET.
Não há como negar que o VB .NET é muito superior em recursos além de contar com uma ferramenta gratuita a disposição de quem desejar aprender a linguagem: basta baixar a versão Express do Visual Basic .NET.
Se você ainda não tem baixe neste link: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express
Se você desejar porta a sua versão para a lingua portuguesa baixe o pacote aqui: http://www.microsoft.com/downloads/details.aspx?FamilyID=7ee0d8a7-32fb-407d-a010-da3a7d93fc2f&displaylang=pt-br
Se você ainda usa ou pretende usar a linguagem Visual Basic pode consultar a seção Visual Basic do site Macoratti.net onde encontrará centenas de artigos que o ajudarão no seu dia a dia.
Hoje eu vou mostrar novamente os conceitos básicos para programação com banco de dados usando o Visual Basic 6. É um resumo que mostra como se conectar e manipular um banco de dados usando o bom e velho Visual Basic ou VB. (Os exemplos mostrados aqui também funcionarão com a linguagem VBA com pequenos ajustes)
Existem várias maneiras de se conectar a um banco de dados (por exemplo, Access, SQL Server, etc.): através de controles de dados vinculados, DAO ou ADO.
Em geral, se você pretende ou gosta de ter mais controles sobre o que esta acontecendo o aconselhável é usar DAO ou ADO e no site você tem dezenas de artigos que mostram como fazer isso.
Vamos então ao resumo...
Introdução
Há várias maneiras para abrir um objeto Connection da ADO:
Há três maneiras de abrir um objeto Recordset da ADO:
1- Definindo variáveis básicas
Para começar,
você precisa criar algumas variáveis dos seguintes
tipos : ADODB.Connection
- Usada se você estiver usando processos de transação;
|
2- Conexão com banco de dados
Usando o VB podemos nos conectar usando o Jet ou o ODBC. O recomendado é usar o JET pois o ODBC é mais lento.
Podemos também escolher entre as tecnologias ADO ou DAO. Embora a primeira seja mais moderna a DAO em alguns casos tem um desempenho melhor.
Dim ws as Workspace Dim db as Database Set ws=DBEngine.Workspaces(0) set db=ws.OpenDatabase((nome caminho do banco de dados)) |
DAO - JET |
Dim ws as Workspace dim db as database dim strConnection as string set ws=DBEngine.Workspaces(0) let strConnection= "ODBC;DSN=" & nomeBancoDados & ";UID=" & nomUsuario & ";PWD=" & senha set db=ws.OpenDatabase("", False, False, strConnection) |
DAO - ODBC |
Dim ad as ADODB.Connection set ad=New ADODB.Connection Let ad.ConnectionString= "ODBC;DSN=" & nomeBancoDados & ";UID=" & nomUsuario & ";PWD=" & senha ad.Open |
ADO |
3- Abrindo uma Tabela/Consulta ou Visão(View)
Dim rs as recordset set rs=db.openrecordset(nome da tabela ou comando SQL)
do while not rs.eof |
DAO |
dim ar as ADODB.recordset set rs=new adodb.recordset rs.open (instrução SQL) do while not rs.EOF 'Ponha aqui o código para tratar a informação. 'A informação do campo pode ser acessado pelo nome do campo intID=rs!IDField 'Ou pelo número do índice na relação de campos(iniciando com 0) intString=rs.Field(1).value 'move-se para o próximo registro rs.movenext loop |
ADO |
4- Alterando um registro
- Para o editar/adicionar/excluir
um registro podemos usar instruções SQL ou comandos diretos.
- Tanto a tecnologia DAO como a ADO podem usar o método Execute
para fazer atualizações via SQL.
- Podemos ainda usar procedimentos armazenados ou stored
procedures que tem um desempenho melhor.
a- Alterando um registro - Inclusão usando SQL
Dim rs as recordset set rs=db.openrecordset((nome da tabela ou SQL)) rs.execute "INSERT INTO nome_da_tabela(ID,Nome) VALUES (10,'Macoratti')" |
DAO |
dim rs as ADODB.recordset set rs=new adodb.recordset rs.open (string de conexão com o banco de dados) rs.execute "INSERT INTO nome_da_tabela(ID,Nome) VALUES (10,'Macoratti')" |
ADO |
Estamos incluindo os campos ID e Nome.
b- Alterando um registro - Inclusão
Dim rs as recordset set rs=db.openrecordset((nome da tabela ou SQL)) rs.addnew rs!ID=intID rs!Nome=strNome rs.update |
DAO |
Dim ar as ADODB.recordset set ar=new adodb.recordset ar.open (string de conexão com o banco de dados) ar.addnew ar!ID=intID ar!Nome=strNome ar.update |
ADO |
Neste exemplos após abrir um recordset verificamos se há um registro que satisfaz os critérios no SQL aberto. Se não ele existir é criado um novo registro usando a instrução addnew e em seguida a instrução update.
c- Alterando um registro - Editar
Dim rs as recordset set rs=db.openrecordset("SELECT * FROM nome_da_tabela WHERE ID=10") if rs.eof then rs.addnew else rs.edit end if rs!ID=intID rs!Nome=strNome rs.update |
DAO |
dim ar as ADODB.recordset set ar=new adodb.recordset ar.open "SELECT * FROM nome_da_tabela WHERE ID=10" if ar.eof then ar.addnew else ar.edit end if ar!ID=intID ar!Nome=strNome ar.update |
ADO |
d- Alterando um registro - Exclusão
Dim rs as recordset set rs=db.openrecordset("SELECT * FROM nome_da_tabela WHERE ID=10") if not rs.eof then rs.delete end if |
DAO |
Dim ar as ADODB.recordset set ar=new adodb.recordset ar.open "SELECT * FROM nome_da_tabela WHERE ID=10" if not ar.eof then ar.delete end if |
ADO |
Recomendação final :
Ao abrir um objeto você deve sempre fechar e liberar o recurso usado:
rs.close
set rs=nothing
1Pedro 1:13
Portanto, cingindo os lombos do vosso entendimento, sede sóbrios, e esperai inteiramente na graça que se vos oferece na revelação de Jesus Cristo.Referências: