ms-access - por - insertar datos en access desde visual basic 2015
¿Por qué debería usar SQLite sobre una base de datos Jet? (9)
Al contrario de lo que dicen otras personas, Jet no está muerto y lejos de eso: ACE es la nueva versión de Jet y es bastante robusta y compatible con versiones anteriores.
Tanto SQLite como Jet / ACE tienen sus fortalezas y debilidades y usted necesita obtener más información sobre los puntos específicos que son importantes para usted y su aplicación.
- En cualquier caso, puede redistribuir el motor.
- Jet / ACE está un poco más integrado y compatible desde las herramientas MS y Visual Studio.
- Jet / ACE tiene un bloqueo más granular, que puede ser importante si su aplicación permite múltiples usuarios o necesita acceso de subprocesos múltiples a la base de datos.
- Jet / ACE tiene más características en términos de lo que esperaría de una base de datos (uniones, uniones y consultas complejas).
- Jet / ACE tiene una ruta de migración simple a SQL Server, por lo que si las necesidades de su base de datos se agrandan, podría pasar a SQL Server con bastante facilidad.
- SQLite es multiplataforma, por lo que si su aplicación necesita ser portada a Linux / Mac en Mono entonces SQLite es una mejor opción.
- el motor SQLite es más ajustado por lo que la redistribución puede ser más fácil.
- los tipos de datos son bastante sueltos en SQLite.
- SQLite tiene derechos de redistribución más liberales (ya que básicamente puedes hacer lo que quieras con él).
Las personas que dicen que Jet corrompe las bases de datos están estancadas en 1995.
Al final, a menos que su aplicación tenga requisitos muy específicos que estén superando los límites de cualquiera de los motores de base de datos, entonces probablemente no importe cuál elija.
Simplemente use el que sea más fácil de incluir en su proyecto.
Alguien me preguntó esto el otro día, y no pude pensar en una buena respuesta. La portabilidad de la plataforma es completamente irrelevante para el proyecto.
De hecho, Jet tiene algunas características que SQLite no tiene, es decir, claves externas.
Entonces, ¿alguien puede pensar por qué debería usarse SQLite en lugar de una base de datos Jet?
El costo no es un problema. Si su interfaz está construida de otra manera que no sea MS-Access, los usuarios de la aplicación no tienen que pagar ninguna tarifa para tener instalados los controladores de Jet. Visual Studio incluiría esos controladores durante su compilación (al menos las versiones anteriores a .NET sí lo hicieron).
Supongo que no tiene preferencia personal y que es igualmente hábil en el desarrollo en cualquier entorno. Si sus usuarios ya tienen licencias de MS-Access y les gustaría poder escribir sus propios informes (¡Oh, Dios prohíba a cualquier no-hacker que intente una proeza tan grande!), Use Jet.
Esta es todavía una pregunta que surge de vez en cuando. Estoy considerando todos los pros y los contras para ambos en este momento para un nuevo proyecto. Escribo muchas aplicaciones financieras que tratan con valores monetarios, así que uno de los "profesionales" más importantes para Access / JET / ACE / lo que sea que lo llamen hoy (lo llamo acceso) es su fuerte . No subestime el poder de tener tipos fuertes cuando se trata de dinero: Access es la única base de datos de un solo archivo que he visto con soporte para un tipo de moneda / decimal que puede almacenar valores de dinero REALES.
Uno de mis productos minoristas principales usa SQLite como back-end y puedo decirle que prácticamente no tuve problemas con su implementación incluso en las situaciones más locas. SQLite está definitivamente diseñado para ser un usuario único, pero tengo MUCHOS clientes que lo usan a través de SMB. Tienes que escribir cheques en tu software para verificar los valores devueltos de SQLITE_BUSY al ejecutar consultas, pero si lo cierras con un auto-retry, "simplemente funciona".
Solo hay unas pocas razones por las que elegiría Access over SQLite, una son tipos de datos. Si alguna vez escribo un software que tiene que hacer cálculos matemáticos sobre valores monetarios (impuestos, etc.), usaré Access. La única otra razón convincente para usar Access es una ruta de actualización a SQL Server. Como nunca he usado SQL Server en mi vida (y no pienso hacerlo), no es gran cosa.
Al final, ambas son bases de datos extremadamente robustas, no dudaría en utilizarlas en un entorno de producción. Solo recuerda usar la herramienta adecuada para el trabajo y, a veces, eso significa un servidor de base de datos (¡eso es seguro! ¡PostgreSQL me ha tratado durante los últimos 13 años!).
Fuera de mi cabeza, es libre y multiplataforma; pero más importante ... ¿crees que es más estable y escalable que Jet / MS Access / .mdb? ¿Será más longevo que su sucesor (ACE / .accdb)
Si está siendo utilizado por más de un par de personas, no me molesto con Jet. Voy directamente a MS-SQL (incluso la versión gratuita). Simplemente no vale la pena el daño de una base de datos corrupta (por la que se conoce a Jet, aunque tal vez lo arreglaron, aunque no quiero ser su caso de prueba).
Jet ya no es compatible. SQLite también es más fácil de instalar, ya que es una DLL que se puede empaquetar fácilmente con su aplicación. El uso de SQLite también puede evitar el bloqueo del vendedor, simplemente porque el lenguaje o la compatibilidad con plataformas cruzadas no son una preocupación ahora, no significa que no se convertirá en uno más adelante. Para obtener más información sobre la jubilación de Jet, consulte http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine
SQLite es el nuevo Jet. Incluso si la plataforma cruzada es irrelevante para usted, puede que no sea para sus clientes. El uso de Jet los bloquea en Windows y en un DB que ya no es compatible, ninguno de los cuales es bueno. Y SQLite funciona con casi cualquier entorno de desarrollo que exista.
Jet es conocido por tener problemas extraños de corrupción, por lo que tiendo a evitarlo en general.
Ciertamente puede crear claves externas en SQLite, y desde SQLite 3.6.19 también se han agregado restricciones de clave externa.
SQLite es superior a Jet por la razón principal de que SQLite ACID-compliant mientras que Jet, lamentablemente, no lo es. Si la integridad de los datos es un problema, SQLite ofrece una plataforma mucho más "robusta" para sus requisitos de almacenamiento de datos. Consulte "SQLite es transaccional" y "Atomic Commit In SQLite" para obtener más detalles.
SQLite carece realmente de algunas características (como las claves externas), sin embargo, esto se debe principalmente a que SQLite se desarrolló específicamente como una base de datos extremadamente pequeña y liviana que tampoco tiene servidores.
El aspecto sin servidor de SQLite también es una gran ventaja con respecto a Jet, ya que no es necesario instalar nada en la máquina que ejecutará su base de datos. Por ejemplo, he utilizado SQLite en una aplicación web ASP.NET y todo lo que necesitaba era la DLL SQLite (en este caso era la excelente sustitución de System.Data.SQLite ) en la carpeta "bin" de mi aplicación, y mi base de datos en la carpeta "App_Data" de la aplicación. Podría subir estos archivos a mi servidor web, y todo "simplemente funcionó". Esto es sin tener que instalar o registrar nada en la máquina de destino.
Una pequeña desventaja de SQLite se debe a que la base de datos está basada en archivos. Las escrituras de la base de datos bloquearán todo el archivo de la base de datos en lugar de una fila o tabla específica, mientras que Jet le ofrecerá un nivel de bloqueo más detallado. Otro pequeño problema, basado en el mismo razonamiento basado en archivos, es la concurrencia, sin embargo Jet tampoco ofrece un alto nivel de concurrencia.
Si programa bien en Python, Pearl, Lua o en muchos otros idiomas, SQLite sería la elección natural.
Utilizamos Jet durante mucho tiempo y recientemente cambiamos a SQLite. ¿Por qué?
1: cuando una base de datos llega a cerca de 2 GB o con uso frecuente, se corrompe en Jet eventualmente. ¡Esto nos ha causado mucha pena! Esto no se ha solucionado en Jet o ACE, aunque Microsoft tiene una herramienta separada que supuestamente puede reparar los archivos de la base de datos.
2: Microsoft dejó de usar Jet hace años, a favor de ACE, pero si lee los detalles, Microsoft mismo dice que ACE NO es un reemplazo para jet, y realmente quiere que use SQL Server.
3: Jet ya no es una parte estándar de Windows, sino parte de Microsoft Office, aunque puede descargar e instalar la distribuible. Sin embargo, no puede tener los motores de 32 y 64 bits instalados al mismo tiempo. Si tiene instalado Office 2007 de 32 bits e intenta instalar el motor de ACE de 64 bits, le indica que primero necesita desinstalar Office 2007.
Entonces, por estos motivos, decidimos que ya es suficiente. Instalar SQL Server no es una solución porque es una instalación invasiva grande y poco portátil.
Nuestro software C ++ soporta directamente SQLite a través del archivo sqlite3.c, y funciona muy bien. He implementado interfaces antive para OCILIB, Oracle, SQL Server, MySQL, etc. y esta fue una de las más fáciles. También es mucho más rápido que Jet y los archivos resultantes tal vez un tercio del tamaño Jet. Tenemos algunos códigos VB6 y VBA y .NET que también necesitan usar nuestros archivos de base de datos y para eso usamos el controlador SQLite ODBC (solo Google). Funciona bien.
SQLite funciona bien tanto en 32 como en 64 bits. Y si lo lee, verá que está seriamente probado y sorprendentemente estable. También es compatible con SQL más estándar y está más cerca de Oracle / SQL Server que Jet.