Pregunta

He escrito un pequeño (8-10 ordenadores portátiles) en el punto de venta sistema que ejecuta sobre una red inalámbrica, como una HTA que lee desde / escribe en un MDB de acceso situado en una red compartida.
Necesito usar ADO -. GetString y la lista de usuarios no están disponibles con DAO
También necesito utilizar DAO - el MDB no se puede compactar con ADO

.

Sé que:
1) Si el motor de base de datos no es un MDB Access, debería usar ADO.
2) Si el servidor es un MDB, pero quiero actualizar a SQL Server en algún momento, debería utilizar ADO.
3) Dentro de una aplicación de Access, o cualquier otra aplicación VBA / VB, debería utilizar DAO, como ADO debe ir a través de una capa de traducción del proveedor Jet OLE DB, mientras DAO es más directo.
4) VBScript / JScript me permite usar ya sea DAO o ADO.

La pregunta de dos partes es el siguiente:
1) En este entorno de software (HTA / scripting), es mejor usar ADO en lugar de DAO?
2) ¿ADO ofrece beneficios debido a que la HTA es la lectura / escritura sobre una red inalámbrica?

¿Fue útil?

Solución

  1. Si la única razón por la que necesita DAO es para compactar la base de datos, puede utilizar DAO para eso, y utilizar ADO para todo lo demás. Usted no está limitado a usar solamente ADO o DAO.

  2. El mayor beneficio del uso de ADO es que será más fácil mover a SQL Server Express cuando llegue el momento. Usted debe hacer que más pronto que tarde, como SQL Server Express ofrece todas las ventajas de las bases de datos MSAccess sin los inconvenientes. SQL Server Express es gratuito, y se manejar fácilmente el tamaño del sistema que está proponiendo.

bases de datos Access corruptos fácilmente en un entorno multi-usuario, especialmente cuando se trata de una red inalámbrica. Si usted está preocupado por la pérdida de los beneficios de trabajar en MS Access, todavía se puede conectar a SQL Server utilizando tablas vinculadas, y trabajar con su base de datos SQL Server Express de esa manera.

Otros consejos

También puede utilizar el ROJ para compactar el archivo MDB. Esta será incluida con cualquier versión reciente de MDAC, instalado de forma predeterminada en XP y sistemas posteriores. Sin instalación de Access es necesario.

Para responder a sus preguntas específicas:

1) optaría por ADO simplemente porque es más actual, y la misma API se puede utilizar en otros tipos de secuencias de comandos, como el acceso LDAP / ActiveDirectory, la lectura de las carpetas del sistema de archivos, leer el correo MAPI, y trabajar con otros tipos de semiestructurada archivos de texto como texto de ancho fijo y CSV. No es específicamente mejor para el entorno de programación ETS, pero su tal vez mejor para aprender una API más ampliamente aplicable. También piensa que es una API más fácil trabajar con él, pero empecé con él y sólo más tarde trabajé en algunos proyectos DAO mayores.

2) Una posible ventaja que ofrece es que ADO de registros desconectados, que pueden tener una ventaja o al menos sugerir algunas alternativas de arquitectura en la configuración de su red inalámbrica. Se abre un conjunto de registros, y luego desconectarlo, por lo que aún puede trabajar con los datos en la memoria, pero no tiene que salir de una conexión de base de datos abierta. A continuación, en un momento posterior se puede volver a conectar y actualizar la base de datos. También, se puede trabajar en un estilo totalmente desconectado mediante la gestión de las tablas como archivos XML o ADTG locales.

Es posible que calzador DAO a trabajar desde VBScript pero eso es una pareja extraña. ADO que tiene más sentido en general.


Otra ventaja de ADO sería que soporta RDS más de DCOM o HTTP. Esto se puede utilizar para superar muchas de las limitaciones de Jet BMD utilizados a través de intercambio de archivos, tales como las redes no confiables corrupción y los clientes pueden llevar a. También reduce la cantidad de tráfico a través de la red, mejorando el rendimiento. Además, ofrece un nivel medio en el que los objetos de negocio puede "en vivo" y todo esto puede ser mediado mediante COM + en su caso.

Por supuesto que ya no tienen la opción de usar un simple red P2P y un recurso compartido de archivos para alojar la base de datos. RDS necesita un servidor para alojar el proceso y haga funcionar el motor Jet, que ya no necesita para funcionar en cada sistema cliente. Esto significa que puede utilizar procedimientos almacenados Jet que se ejecutan en el servidor, la descarga de más procesamiento del cliente y el tráfico de red. Aunque no es tan sofisticado como el T-SQL u otras alternativas, esto ADO / Jet proveedor de tecnología exclusiva 4.0 OLE DB ofrece beneficios tangibles que no se pueden tener con DAO.

RDS puede enmascarar la mayor parte del proceso de utilización de registros desconectados, lo que simplifica el código de cliente. Utiliza ADTG bajo el capó, que fue desarrollado y optimizado para este fin.

Sin embargo, utilizando RDS requiere más infraestructura y experiencia que un simple recurso compartido de archivos. Es lo mismo que mirar en una versión de gama baja de SQL Server.


En general me gustaría recomendar el uso del href="http://support.microsoft.com/kb/273956" rel="nofollow noreferrer"> Jetcomp.exe utilidad

Si usted puede permitirse el lujo de usar una aplicación de la ETS de acceso en lugar de una plataforma con más prestaciones, yo diría que hay que ir con la API más fácil para usted. El cuello de botella nunca será la abstracción de acceso db en su caso. Aún así, DAO es muy viejo.

scroll top