Pros y los contras del motor de base de datos Access. La vida después de SQLite

StackOverflow https://stackoverflow.com/questions/680399

  •  22-08-2019
  •  | 
  •  
¿Fue útil?

Solución

En lugar de "volver" a Access, me quedo con SQLite y utilizar el proveedor System.Data.SQLite para acceso a datos SQLite dentro del código .NET.

A continuación, que acababa de crear una sencilla clase de .NET de interoperabilidad COM para el uso de VB6 que envuelve toda la funcionalidad de acceso a datos SQLite requerido. Finalmente, justo referencia y usarlo como un objeto COM estándar a partir de sus proyectos de Visual Basic 6.

Mi conocimiento de acceso es probablemente un poco anticuado y sesgada por malas experiencias, pero dentro de lo razonable me gustaría probar la mayoría de las otras opciones antes de recurrir a la vía de acceso.

Otros consejos

¿Ha considerado SQL Server 2008 Express Edition (como se oponen a SQL Server CE)?

1) En lo personal, he encontrado que la mayoría de veces que Access DB corrompido que era debido a código que no ha limpiado después de que uno mismo, o había una tarjeta de red defectuosa en cuestión.

2)

string connectionString = @“Provider = Microsoft.Jet.OLEDB.4.0; " + 
                          @"Data Source = C:\data\northwind.mdb; " +
                          @"User Id = guest; Password = abc123”


using (OleDbConnection oleDbConnection = New OleDbConnection())
{
    oleDbConnection.ConnectionString = connectionString;

    oleDbConnection.Open();

    ...
}

3) de SQL Server 2008 Express Edition

MDB la corrupción es en gran parte debido a los fallos que se producen en los equipos cliente, servidores de archivos y redes, mientras que la base de datos está abierta. Si pones el MDB en un recurso compartido de archivos que esto es siempre un riesgo, si en un disco duro local y utilizado por un usuario los problemas son mucho más raras.

No esperaría SQLite sea diferente, y si hay algo peor.

Periódicamente se ejecuta JetComp.exe (una descarga Microsoft) solucionará muchos problemas y tablas de índice compactos y tal. Las copias de seguridad son importantes, no importa lo que se utiliza.

No es necesario MS acceso en absoluto al utilizar Jet BMD. Hay algunas herramientas de 3 ª parte para diseñar el esquema de base de datos y hacer consultas interactivas, tanto en la línea de comandos y la interfaz gráfica de usuario.

Dado que el formato MDB está más o menos obsoleta, su conocimiento finales de los 90 es bastante actualizado. Ver esta página de MSDN

También puede probar SQL en cualquier lugar que se ejecuta en diferentes sistemas operativos y tiene una pequeña huella. Que funciona para mí:)

AngryHacker preguntó:

Q1. ¿Se han resuelto el problema por el que la base de datos corrompería de vez en cuando.

Er, ¿qué?

Nunca hubo ningún problema de corrupción en aplicaciones diseñadas correctamente correctamente desplegados en entornos de mantenimiento adecuado. No he visto un MDB dañado en 3 o 4 años, y tengo docenas de mis aplicaciones en uso en producción a tiempo completo por muchos clientes en muchos diferentes tipos de entornos operativos.

Creo que la mayoría de las personas que experimentan la corrupción son los que tratan de compartir un archivo MDB entre muchos usuarios (ya sea dividida o no dividida). Puesto que no se está contemplando el uso de acceso, que no es realmente un problema.

Q2. ¿El acceso a la MDB de c # logra a través del proveedor OLEDB de ADO.NET o hay una solución nativa (i parece que no puede encontrarlo).

La solución nativa sería DAO, pero eso es COM, por lo que puede que no desee usar eso. Desde C #, yo diría que OLEDB es la mejor opción, pero ese no es mi área de especialización a fin de tomar con un grano de sal. Creo que Michael Kaplan informó que el proveedor Jet ADO / OLEDB de flujos seguros, mientras que DAO no lo es. Esto no quiere decir que recomendó ADO / OLEDB sobre DAO, sin embargo, pero sus comentarios también se produjo en un contexto de acceso, y no en C #.

Q3. ¿Hay una alternativa viable para el Editor de SQL realmente horrible en el acceso?

¿Por qué estar usando que cuando no se está utilizando realmente acceso? Se podría utilizar cualquier editor de SQL te gusta, siempre y cuando se prueba que el SQL se escribe es compatible con el dialecto SQL de Jet.

Yo, por ejemplo, no veo cuál es el problema con el editor de SQL de acceso (que no sea la incapacidad para establecer el tamaño de la fuente), pero entonces, escribo mucho de mi SQL utilizando el QBE Y nunca incluso mirar la vista SQL.

Para responder a su pregunta sobre el editor de SQL realmente horrible en Access - Estoy totalmente de acuerdo. El tipo de letra apesta, MS Access siempre mal vuelve a formatear la consulta, a veces se añade en metacaracteres que rompen mi SQL, y por último, pero worstly, si no puede analizar el SQL, no va a dejar que se tiene acceso a él!

Mi solución es utilizar código externo. Yo uso DAO para crear instancias de MS Access y luego puedo editar directamente las consultas utilizando la colección QueryDefs. Se le permite hacer más cosas - crear, renombrar, editar, etc. Hay un par de cosas que no puede hacer de esta manera, aunque -. Por ejemplo, usted no tiene acceso a los metadatos de consulta (descripción, oculto, etc)

El código externo también es grande porque usted puede construir un conjunto de casos de prueba, especificando los valores de retorno esperados, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top