Jump to content


Photo

Error al Abrir archivo *.mdb


  • Please log in to reply
3 replies to this topic

#1 jdepaz

jdepaz

    Advanced Member

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

Posted 04 December 2010 - 10:14 PM

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
  • 1750 posts
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Posted 05 December 2010 - 09:30 AM

...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
  • 1259 posts
  • LocationEspaña

Posted 05 December 2010 - 09:49 AM

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 posts
  • LocationMedellín Colombia

Posted 05 December 2010 - 06:08 PM

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.