USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Internet)

Título da Dica:  Acessar bd access na internet por um sistema local em vb
Postada em 11/1/2002 por georgenes      Clique aqui para enviar email para o autor  georgenes@bol.com.br
Para conectar db access pela internet é um problema, porque o access não é inteligente como o sql, oracle e outros, por isto voce presisa passar os parametros para um arquivo no provedor que este fara as consultas e vai retornar os valores para voce e ate mesmo um recordset.
É necessario utilizar um arquivo chamado de handler que fica no diretorio do windows e no caso do winnt no provedor, este arquivo contem chaves para chamada de instrucoes sql e voce pode passar parametros para este arquivo e o mesmo fala com o Ms Remote do provedor e executa as instrucoes SQL..
Vou exemplificar o mais facil possivel.

Primeiro crie um db chamado de MeuDb com uma tabela Cliente com colunas Nome, Rg_Numero e Sexo.

Crie uma conexão DSN para ele utilizando drive do access e com  nome de ConexaoDb

Procure o arquivo MSDFMAP.INI dentro do diretorio windows ou winnt conforme o caso, edite o mesmo e inclua as seguintes chaves.

[connect MinhaConexao]
Access=ReadWrite
Connect="DSN=ConexaoDb"

[sql Cliente]
Sql="SELECT * FROM Cliente where codigo = ?"

* a linha abaixo é muito versatil para executar linhas de comando sql, porem não funciona para insert e update
[sql Comando]
Sql="?"

* observe que os pontos de interrogacao serao os parametros que voce vai passar.
[sql IncluiCliente]
Sql="Insert into cliente (Nome,Rg_Numero,Sexo) values (?,?,?)"


O incoveniente desta tecnica é que voce precisa passar para o administrador do servidor os parametros do arquivo handler para que ele inclua na maquina onde esta o seu db e criar o famoso DSN para seu db, e todas as vezes que voce precisar alterar as chaves, voce precisa informar o administrador para atualizar tambem.


Agora vamos para o Vb,  crie um projeto e faca referencia para  Microsoft ActiveX Data Objects 2.7 Library que voce consegue no site da microsoft a atualizadao do MDAC 2.7
http://www.microsoft.com/data/download_270RTM.htm

Depois crie esta sub no projeto  boa sorte


Public Sub CarregarOdbcHandler() ' com handler
    Dim Rs As New ADODB.Recordset
    Rs.CursorLocation = adUseClient
    Dim Ssql As String
    
    '*** Comando abaixo funciona para inclusao, note que a chave sql IncluiCliente contem
    '    varios ? (pontos de interrogacao) correspondente aos nomes dos campos da tabela
    '    e sao separados por virgula a partir do comando de chamada
    '    nao se pode passar o comando direto "Insert into cliente (Nome,Sexo) values (Georgenes,Masculino)" ' Nao funcina

    
    Ssql = "'georgenes','masculino',"  ' Ok Funciona
    Rs.Open "IncluiCliente(" & Ssql & ")", "Handler=MSDFMAP.Handler;" & _
            "Provider=MS Remote;Data Source= MinhaConexao;" & _
            "Remote Server=http://NomeDoServidor" ‘ previamente configurado pelo PWS

    'Ssql = "Insert into cliente (Nome,Sexo) values (geo,Masculino)" ' Nao funcina
    

' ‘ na linha abaixo tem um exemplo de liberdade de codigo utilizando a chave comando passando o parametro completo de pesquisa para criar uma recordset     

    Ssql = "select * from cliente where cd_Cliente = 1" ' ok funcina
    Rs.Open "Comando(" & Ssql & ")", "Handler=MSDFMAP.Handler;" & _
        "Provider=MS Remote;Data Source= MinhaConexao;" & _
        "Remote Server=http:// NomeDoServidor "
    Rs.Close
      
      
    Rs.Open "Comando(select * from cliente)", "Handler=MSDFMAP.Handler;" & _
        "Provider=MS Remote;Data Source= MinhaConexao;" & _
        "Remote Server=http:// NomeDoServidor "
    Rs.Close

End Sub
 


CyberWEB Network Ltda.    © Copyright 2000-2020   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página