Ir al contenido


Foto

Error al Abrir archivo *.mdb


  • Por favor identifícate para responder
3 respuestas en este tema

#1 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 04 diciembre 2010 - 10:14

Hola foreros.

Tengo el siguiente función:


delphi
  1. function TForm1.Abrir126(File126Name:String):boolean;
  2. var resultado:Boolean;
  3. begin
  4. try
  5. Cnn1.Params.Add('DBQ='+File126Name);
  6. Cnn1.Connected:=True;
  7. resultado:=True;
  8. Except
  9. resultado:=False;
  10. end;
  11. Result:=resultado;
  12. end;             



la cual me abre un archivo de Access previamente seleccionado
con un TOpenDialog, el cual al ejecuta en un Boton:



delphi
  1. if (Abrir126(dialogo1.FileName)) then
  2.     PoneMensaje('Version de base de datos 1.2.6 abierta con exito')
  3.     else
  4.     PoneMensaje('Version de base de datos 1.2.6 no fue abierta'); 



Pero resulta que cuando la ruta tiene este formato:

C:\Temp\iva.mdb

abre sin problemas,

pero si la ruta tiene este formato:

C:\Archivos de Programa\Planilla IVA(SAT)

me sale una excepcion.

Imagen Enviada

He probado con varias rutas como ejemplos, y la
que me da error es cuando tiene los parentesis ()


Como podria solucionar esto?


Saludos

  • 0

#2 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 05 diciembre 2010 - 09:30

...Como podria solucionar esto?


(Nota graciosa) No uses paréntesis en la ruta de tu archivo.

(Nota seria) No uses paréntesis en la ruta de tu archivo. Me explico. Si tú usas el formato largo (éste que pones en tu ejemplo) se puede acceder a cualquier archivo de tu computadora, pero entonces pueden "botar" problemas como éste. Y si usas el formato corto de tu ruta (ejemplo: C:Archi~1Planil~1Archivo.mdb) seguramente podrás acceder tu archivo sin ninguna excepción.

Es un problema de Winbugs, no de Lazarus o de ObjectPASCAL.

Nota extra: ¿Y por qué no usar corchetes ( [] ) en lugar de los paréntesis? O de plano, eliminar el uso de los paréntesis por algo menos problemático.
  • 0

#3 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 05 diciembre 2010 - 09:49

Si el problema es el "nombre largo" pues hagamoslo corto:


delphi
  1. function ShortPath(Path: String): String;
  2. var
  3.   Buffer: Array[0..MAX_PATH] of Char;
  4. begin
  5.   FillChar(Buffer,Sizeof(Buffer),#0);
  6.   if GetShortPathName(PChar(Path),@Buffer,Sizeof(Buffer)-1) <> 0 then
  7.     Result:= String(PChar(@Buffer))
  8.   else
  9.     Result:= EmptyStr;
  10. end;



Es decir:


delphi
  1. function TForm1.Abrir126(File126Name:String):boolean;
  2. var resultado:Boolean;
  3. begin
  4. try
  5. Cnn1.Params.Add('DBQ='+ShortPath(File126Name));
  6. Cnn1.Connected:=True;
  7. resultado:=True;
  8. Except
  9. resultado:=False;
  10. end;
  11. Result:=resultado;
  12. end; 


  • 0

#4 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 05 diciembre 2010 - 06:08

Gracias por responder, probare con lo que me escriben.

Resulta que lo que estoy haciendo es una aplicación de migración de datos de una base de datos Access a otra misma de Access, pero la segunda tiene algunos cambios, de alli la migración al nuevo formato.

Esto es para el programa que distribuye la SAT en Guatemala, ya que cada año presentan una nueva versión, por ejemplo para este año han dicho que por "decreto" se debe presentarla el formato que se obtiene al utilizar la versión 1.2.7.

Pero resulta que si tenemos instalada la versión 1.2.6, y descargamos la versión 1.2.7, hay una aplicación que hace la "actualización", pero al utilizar la versión 1.2.7 con una BD actualizada desde la versión 1.2.6, al generar los reportes y el llenado de la planilla, la aplicación muestra algunos errores.

Entonces, hay personas que desde el inicio del año, hay utilizando e ingresado sus datos en la versión 1.2.6, entonces, con estos errores, no les queda otra mas que hacerlo de nuevo en la versión 1.2.7.

Siguiendo, cuando se instala la aplicación de la SAT, esta por defecto sugiere la ruta: C:\Archivos de Programa\Planilla IVA(SAT), entonces los usuarios solo le dan "siguiente" y listo para terminar la instalación.

Saludos y gracias
  • 0




IP.Board spam blocked by CleanTalk.