Pergunta

Eu escrevi um pequeno (8-10 laptops) sistema de ponto-de-venda em execução através de uma rede sem fio, como uma HTA que lê / escreve para um MDB de acesso localizado em um compartilhamento de rede.
Eu preciso usar ADO -. GetString eo usuário roster não estão disponíveis com DAO
Eu também preciso uso DAO -. O MDB não pode ser compactado com ADO

Eu sei que:
1) Se o backend de banco de dados não é um MDB Access, eu deveria usar ADO.
2) Se o backend é um MDB, mas eu quero atualizar para SQL Server em algum momento, eu deveria usar ADO.
3) Dentro de um aplicativo do Access, ou qualquer outra aplicação VBA / VB, eu deveria usar DAO, como ADO deve passar por uma camada de tradução do provedor Jet OLE DB, enquanto DAO é mais direto.
4) VBScript / JScript me permite usar DAO ou ADO.

A questão de duas partes é a seguinte:
1) Neste ambiente de software (HTA / scripting), é melhor usar ADO em vez de DAO?
2) O ADO oferece nenhum benefício porque a HTA é leitura / escrita através de uma rede sem fio?

Foi útil?

Solução

  1. Se a única razão que você precisa DAO é para compactar o banco de dados, você pode usar DAO para isso, e uso ADO para tudo o resto. Você não está limitado a usar apenas ADO ou DAO.

  2. A maior vantagem de usar ADO é que será mais fácil para se deslocar para SQL Server Express quando chegar a hora. Você deve fazer isso mais cedo ou mais tarde, como SQL Server Express oferece todos os benefícios de bancos de dados MSAccess sem os inconvenientes. SQL Server Express é gratuito, e será fácil lidar com o tamanho do sistema que você está propondo.

acessar bancos de dados corruptos facilmente em um ambiente multi-usuário, especialmente quando uma rede sem fio está envolvido. Se você está preocupado em perder os benefícios de trabalhar em MSAccess, você ainda pode anexar ao SQL Server usando tabelas vinculadas, e trabalhar com seu banco de dados SQL Server Express dessa forma.

Outras dicas

Você também pode usar JRO para compactar seu arquivo MDB. Este será incluído com qualquer versão recente do MDAC, instalado por padrão no XP e sistemas posteriores. Nenhuma instalação de acesso é necessário.

Para responder às suas perguntas específicas:

1) eu optaria por ADO apenas porque é mais atual, e o mesmo API pode ser usado em outros tipos de scripts, como o acesso LDAP / ActiveDirectory, lendo pastas do sistema de arquivos, leitura de email MAPI, e trabalhar com outros tipos de semi-estruturado arquivos de texto como texto de largura fixa e CSV. Não é especificamente melhor para o ambiente de programação HTA, mas a sua talvez melhor para você aprender uma API mais amplamente aplicável. Eu também acha que é uma API mais fácil de se trabalhar, mas eu comecei com ele e só mais tarde trabalhou em alguns projetos DAO mais antigos.

2) Um benefício possível que ADO fornece é a de registros desconectados, que podem ter uma vantagem ou pelo menos sugerir algumas alternativas de arquitetura em sua configuração de rede sem fio. Você abre um conjunto de registros, em seguida, desligue-o, assim você ainda pode trabalhar com os dados na memória, mas não tem que deixar uma conexão banco de dados aberto. Em seguida, em um momento posterior, você pode ligar e atualizar o banco de dados. Além disso, você pode trabalhar em um estilo totalmente desconectado por gerir tabelas como XML local ou arquivos ADTG.

Você pode calçadeira DAO para trabalhar a partir de VBScript, mas isso é um emparelhamento estranho. ADO faz mais sentido em geral.


Outra vantagem do ADO seria que ele suporta RDS sobre DCOM ou HTTP. Isso pode ser usado para superar muitas das limitações de Jet MDBs usados ??via compartilhamento de arquivos, tais como as redes não confiáveis ??corrupção e clientes podem levar a. Ele também reduz a quantidade de tráfego na rede, melhorando o desempenho. Além disso, oferece uma camada intermediária em que objetos de negócios pode "ao vivo" e tudo isso pode ser mediada utilizando COM + quando aplicável.

É claro que já não têm a opção de usar uma rede P2P simples e um compartilhamento de arquivo para o host do banco de dados. RDS precisa de um servidor para hospedar o processo e executar o motor Jet, que há necessidades mais longos para executar em cada sistema cliente. Isto significa que você pode usar procedimentos Jet armazenados que são executados no servidor, o descarregamento de mais processamento cliente e tráfego de rede. Embora não seja tão sofisticado como T-SQL ou outras alternativas, este ADO / Jet 4.0 OLE DB provedor oferece tecnologia exclusiva benefícios tangíveis que não pode ser tido usando DAO.

RDS pode mascarar a maior parte do processo de utilização de registros desconectados, simplificando o código do cliente. Ele usa ADTG sob o capô, que foi desenvolvido e otimizado para este fim.

No entanto usando RDS requer mais infra-estrutura e experiência do que um compartilhamento de arquivo simples. Assim como você pode olhar para uma versão low-end do SQL Server.


Em I geral recomendo usar o utilitário Jetcomp.exe para compactar e reparar, sobre ambos os DAO ou JRO. Ele oferece uma série de vantagens.

Se você pode dar ao luxo de usar um aplicativo HTA com o Access em vez de uma plataforma de maior performance, eu diria que você deve ir com a API mais fácil para você. O gargalo nunca mais será a abstração de acesso db no seu caso. Ainda assim, DAO é muito velho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top