2011-05-27 7 views
5

? Debido a que el archivo de base de datos de MS Access genera un archivo .ldb lock cuando el archivo .mdb está abierto obtengo un error al ejecutar una aplicación Delphi en un CD donde el archivo de base de datos también está en el CD.¿Puedo abrir un archivo MS access mdb en CD con Delphi

¿Hay alguna solución para este problema?

+6

¡Cópielo en la carpeta TEMP del usuario y ábralo !? :-) –

Respuesta

14

Sí. Debe especificar que está abriendo la base de datos en modo de solo lectura. No ha especificado cómo va a abrir la base de datos de Access, pero por ejemplo, si estuviera usando los objetos ADODB COM, que haría algo como esto a su ADODB su objeto Connection:

conn.Provider := 'Microsoft.Jet.Oledb.4.0'; 
    conn.Mode := adShareDenyWrite; 
    conn.Open('database.mdb'); 

o dentro de la cadena de conexión en sí:

conn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' + 
     'Data Source=database.mdb;' + 
     'Mode=Share Deny Write'; 
    conn.Open; 
+1

adModeShareDenyWrite impide que otros abran una conexión con permisos de escritura; no hace que la conexión de la sesión actual sea de solo lectura. ¿Es adoShareDenyWrite alguna constante específica de Delphi que tiene un significado diferente? – HansUp

+0

Gracias - Voy a probarlo de inmediato –

+3

+1, [Debe abrir MDB en medios de solo lectura con adShareDenyWrite] (http://support.microsoft.com/kb/195475) –