Visual Basic 6 - Tratando arquivos DBF
É isto mesmo , você pode criar , acessar e gerenciar arquivos DBF com páginas ASP. Por que você iria fazer isto ? |
Bem , quem sabe um dia você seja obrigado a ter que realizar esta tarefa então é só consultar esta dica.
Podemos usar vários provedores para abrir arquivos DBF usando ADODB. A forma padrão é usar uma fonte de dados ODBC (com ou sem DSN) e sobre este assunto eu já falei no artigo :
Mas como fazer a mesma coisa usando um provedor OLE DB ?
Uma das opções é usar o provedor Microsoft.Jet.OLEDB.
Para usar este provedor teremos que usar a propriedade "Extend Properties" para trabalhar arquivos DBF . Este parâmetro pode ser entendido como tendo o mesmo comportamento do parâmetro connect que usamos no método OpenDataBase da DAO.
Vejamos um exemplo de como abrir um conexão com arquivos DBF do dbase IV:
Function AbrirDBFCon(Caminho) Dim Conn Set Conn = CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Caminho & ";" & "Extended Properties=""DBASE IV;"";" Set AbrirDBFCon = Conn End Function |
Os arquivos DBF são conhecidos como arquivos no formato ISAM . Você pode encontrar informações sobre os formatos ISAM instalados em sua máquina no registro do windows na chave ::
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ISAM Formats\
Existem outros formatos ISAM : "dBase 5.0", "Paradox 3.X", "Outlook 9.0" etc.
Vejamos um exemplo real onde iremos abrir uma conexão com um arquivo DBF chamado clientes.dbf que será criado no drive d:\.
Neste exemplo irei mostrar como abrir a conexão , criar uma tabela , inserir e obter registros. A seguir o código:
Nota: estou usando a função AbrirDBFcon criada anteriormente para abrir a conexão com o DBF.
Option explicit Dim DBConn As Connection Private Sub Command1_Click() 'abre uma conexao com o aruivo DBF em c:\dbf Set DBConn = AbrirDBFCon("c:\dbf") 'Cria um novo arquivo dbf chamado clientes DBConn.Execute "Create Table Clientes (Nome char(50), Endereco char(50), cidade char(20), Cep decimal(8))" 'inclui alguns registros no arquivo dbf DBConn.Execute "Insert into Clientes Values('Macoratti', 'Rua Mexico 100','Brasilia','14589999')" DBConn.Execute "Insert into Clientes Values('Miriam', 'Rua Venezuela 90','Lins','01245987')" DBConn.Execute "Insert into Clientes Values('Jessica', 'Rua Peru , 123,'Americana','12345678')" DBConn.Execute "Insert into Clientes Values('Jefferson', 'Rua Panama 1890','Vinhedo','01245987')" DBConn.Execute "Insert into Clientes Values('Janice', 'Rua Bolivia , 1045,'Campinas','12345678')" 'abre o recordset da tabela clientes Dim Clientes As Recordset Set Clientes = DBConn.Execute("Select * from [Clientes#DBF]") 'vai para o primeiro registro Clientes.MoveFirst 'exibe o nome , endereco e cidade Do While Not Clientes.EOF List1.AddItem Clientes(0) & " - " & Clientes(1) & " - " & Clientes(2) Clientes.MoveNext Loop End Sub Function AbrirDBFCon(Caminho) Dim Conn As ADODB.Connection Set Conn = CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Caminho & ";" & "Extended Properties=""DBASE IV;"";" Set AbrirDBFCon = Conn End Function |
Abaixo o formulário do projeto exibindo o resultado do processamento do código acima:
Nota : embora o código acima esteja sendo executado em um formulário VB para executar em uma página ASP basta fazer pequenos ajustes.
Observe que o arquivo clientes.dbf foi criado via código
Até mais ver ...
Referências: