Ir al contenido


Foto

Problema Acces 2007-->2010 accdb


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

#1 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 22 junio 2011 - 06:38



  Si creo un programa que de acceso a una base de datos accdb en mi equipo y tengo instalado el acces 2007 funciona muy bien, de hecho en otros equipos tambien funciona.
El problema es en un equipo que tiene instalado acces 2010, segun parece no funciona.


  Mi pregunta es si deberia de funcionar si cambio acces 2007 e instalo acces 2010? Alguien ha hecho esto y le ha funcionado?


Gracias.
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 22 junio 2011 - 07:12

Pues deberías ver con qué drivers trabaja ahora Access 2010, yo personalmente no he utilizado esa versión.

Saludos.
  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 22 junio 2011 - 07:56

En el caso de microsoft y las diferentes versiones de un producto, olvidate del "debería funcionar", de hecho en los ultimos office no puedes leer ya ciertos documenots del office 97 segun tengo entendido por que según ellos mismos no son seguros... (claro, admites ActiveX en un fichero de texto y es mas peligroso que un EXE autoejecutable) en fin, no vamos a pelearnos por quien mató a quien, pero lo esperable de microsoft es que te de problemas al cambiar de verison.

Es cierto que les toca lidiar con compatibilidades hacia atras muy delicadas, pero es que son malos a rabiar... dll con el mimso nombre pero que no son intercambiables (recuerdo varias msvcrt7.dll), lenguajes que tras actualizarlos dejan de ser compatibles con el 90% del código de la version anterior (VB tuvo 2 o 3 incidentes de estos), no poder tener instalado un programa hecho con una version de VB y otro hecho con otra version en el mismo windows (de nuevo se "liaron" un poco con las DLL, ya se sabe, mismo nombre, diferentes funciones dentro), el ultimo excel no respeta los formatos de graficos de las hojas de la version anterior (me lo conto un cliente hace poco casi llorando, microsoft no lo considera un problema sino una "feature" y no lo van a arreglar, dice que se va a pasar a OpenOffice), y bueno, la lista es realmente interminable.

En tu caso, todo depende de como hagas la conexion, pero algún componenete "cliente" debe usarse, y ese debe estar necesitado de una actualizacion supongo.
  • 0

#4 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 22 junio 2011 - 08:01

Gracias por las respuestas, creo que toca hacer como santo tomas (hasta no ver), des instalar mi office 2007 e instalar office 2010 para ver si yo mismo puedo compilar el programa y funciona.


ojala con firebird no me pase lo mismo.  (y)
  • 0

#5 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 22 junio 2011 - 10:28

Definitivamente no funciona delphi 2010 con acces 2010 usando el bde, acepto sugerencias para resolverlo.  (y)
  • 0

#6 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 22 junio 2011 - 01:28

ODBC? Es un follon porque hay que darlo de alta, pero bueno, es una entrada de emergencia!

Una vez tengas dado de alta el ODBC, no se si por BDE puedes conectar con el, creo que no, solo use BDE en pruebas en delphi 1 y era tan pesimo que lo abandone antes de abrazarlo!

Y ya mirando tu comentario sobre firebird: Yo me pase a FireBird tras probar el BDE, solo necesitas tu EXE y el fichero fbclient.dll copiado junto a el (ese fichero lo sacas de la carpeta bin, dentro de la carpeta de instalacion de FireBird). Es bastante tolerante a diferentes versiones de la DLL y el servidor FireBird, el otro dia un cliente nuestro tenia problemas porque usaba fbclient.dll de la V1.5 con FireBird V2.5, y el programa le funcionaba excepto en algunos detalles menores, de hecho seguian trabajando como si nada y lo sospechamos solo por un mensaje de error de la base de datos donde el campo afectado se llamaba @1. Cambiaron ese fichero -con el programa en uso- y los que se conectaban desde ese momento no tenian ya el error.

Igual que con BDE ¿eh?
  • 0

#7 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 junio 2011 - 02:43

Hola
Tal vez esta el problema en el odbc y sus drivers, para mi lo mejor seria usar ADO.
El cambio no debe ser muy duro.
Aunque de plano si se va a cambiar algo seria access x firebird.
Saludos
  • 0

#8 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 22 junio 2011 - 02:55

Hola
Tal vez esta el problema en el odbc y sus drivers, para mi lo mejor seria usar ADO.
El cambio no debe ser muy duro.
Aunque de plano si se va a cambiar algo seria access x firebird.
Saludos

Eso intente pero ado no admite accdb solo mdb, lo del cambio a firebird es lo que voy a hacer, pero me preocupa el instalador, no sabria como hacer esa parte ya que lo tengo hecho con el viejo install shielld, sobre todo la parte de estableser el alias de la base de datos, ya que tengo que entregar un instalador que deje todo listo.

  • 0

#9 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 junio 2011 - 03:04

Hola
Usa Firebird con IB y un archivo INI para configurar la ruta a la BD.
Nada de alias, ni nada de esas pesadeces.
Saludos
  • 0

#10 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 22 junio 2011 - 03:11

Hola
Usa Firebird con IB y un archivo INI para configurar la ruta a la BD.
Nada de alias, ni nada de esas pesadeces.
Saludos

Caral podriar regalarme un link para leer sobre como configurar la ruta, te lo agradeceria muchisimo.
  • 0

#11 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 22 junio 2011 - 03:58


Hola
Usa Firebird con IB y un archivo INI para configurar la ruta a la BD.
Nada de alias, ni nada de esas pesadeces.
Saludos

Caral podriar regalarme un link para leer sobre como configurar la ruta, te lo agradeceria muchisimo.


Creo que se refiere a usar un INI de tu creacion, donde almacenes la ruta a la base de datos, una vez se la preguntes al usuario en el momento que detectes que el INI aun no existe, algo asi creo que se refiere Caral.

De hecho exactamente asi es como lo hago yo: en la pantalla de login pregunta user, pass y ruta a la base de datos, y los relleno inicialmente con el contenido de un fichero INI -la password no la almacenes, claro, se ha de teclear cada vez- y listo, si editan la ruta y consigo conectar, añado esa ruta a la lista del ini y asi, al entrar otra vez, tendra un desplegable con dos popsibles rutas a diferentes bases de datos.
  • 0

#12 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 junio 2011 - 05:54

Hola
En mi programa uso el INI que esta en el archivo adjunto, con algunos cambios que por supuesto no pongo. 
El programa al arrancar busca la ruta de la BD en el archivo ini y listo, si se quiere poner la bd en red, en local, en donde sea la encontrara.
Para dar un instalador lo mas sencillo que he hecho es un programa independiente del principal el que actualiza el archivo ini, una vez que corre este programa el principal se instala y funcionara sin problemas.
No he usado nunca install shielld asi que no puedo opinar en ese sentido, el que usaba era Ino setup.
Saludos

Archivos adjuntos


  • 0

#13 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 23 junio 2011 - 07:22




Estoy empezando a migrar todo a firebird, tengo que hacer muchos cambios, me gustaria saber si ademas de firebird, mi aplicacion necesita algo adicional para funcionar en otro computador, me refiero a una dll u otro programa adicional?
  • 0

#14 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 23 junio 2011 - 10:17

Hola
Si necesita dll, las trae el mismo firebird, es muy sencillo, ya llegaras a eso, por ahora cambia todo que ya es bastante.
Saludos
  • 0

#15 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 23 junio 2011 - 10:42

Estoy empezando a migrar todo a firebird, tengo que hacer muchos cambios, me gustaria saber si ademas de firebird, mi aplicacion necesita algo adicional para funcionar en otro computador, me refiero a una dll u otro programa adicional?


Solo necesitas que la dll fbclient.dll, que se encuentra inicialmente en la carpeta "bin" dentro de donde instaste FireBird, este "accesible" por el ejecutable.

Lo que yo hago siempre es poner la aplicacion (el .exe) en una carpeta compartida del servidor, y copiar la dll a esa misma carpeta, de esta forma, desde cualquier PC solo necesitas un acceso directo al .exe directamente de la carpeta compartida.

Como un .exe siempre busca las dll primero en su propia ruta, no necesitas instalar la dll en los windows ni nada de nada, instalacion cero en los clientes, y en el servidor, solo instalar firebird, crear a carpeta compartida, y poner el exe mas la dll.

Solo una nota importante: Si tienes el servidor de 64bits y decides aprobecharlo poniendo la version 64 bits de FireBird, no debes usar esa fbclient.dll en tu carpeta compartida -salvo que todos tengan un windows 64 bits- es mejor usar la de 32 bits (instalas la de 32, te copias el fichero, y luego instalas encima la de 64 bits, por ejemplo).

Si añades la dll a tu instalador y pones la ultima version para 32bits, te despreocupas totalmente de esto, ya que la ultima version puede conectar con versiones anteriores de FireBird.

Y ya el colmo de la ganduleria, en el caso de aplicaciones monopuesto, es usar la version embeded de FireBird, que en fbclient.dll mete todo el servidor, por lo que no hay intalacion (un zip te vale) y se puede ejecutar todo desde un disco USB (ideal para las demos) o incluso desde un CD si la base de datos se abre en read-only (ideal para catalogos en CD).
  • 0

#16 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 23 junio 2011 - 11:03

Gracias sergio ya tengo casi todo migrado a firebird, de todo lo que me recomiendas me interesa el embeded de FireBird ese es el mio, ahora me preocupa si funcionara bien en todos los windows, sobre todo en windows 7 hay que hacer algo adicional para que no de problemas o no hay ningun inconveniente?
[/size]Nota: Uso delphi 2010. (y)
  • 0

#17 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 23 junio 2011 - 11:39

Funciona perfectamente en todo tipo de windows, al fin y al cabo solo es una libreria win32 de 32 bits, yo lo he usado en winxp, vista, 7 ademas de linux+wine, mac+wine, mac con paralells y varios entornos virtualbox.

Este link es a un exe, es un instalador (solo descomprime una carpeta) de nuestra aplicacion: http://www.hcsoft.ne...s/HCLabDemo.exe no usa la ultima verison (creo que aun tengo la V2.1) pero eso no cambia nada.

Instalala en un disco USB, por ejemplo, y mira dentro, veras un exe y una dll, junto con algunos ficheros mas de mensajes de firebird y languaje y poco mas (las capretas actual y ensayos son de mi aplicacion).

Lo interesante es que le das al exe y funciona sin mas, y si borras la carpeta, queda desistalado (bueno, lo reconozco, dejo guardado unos valores en el registro de windows, pricipalmente la ruta del exe para que el instalador de la actualizacion sepa donde poner el nuevo exe).

Mas facil no puede ser.

Posibles problemas que yo sepa:

-Ojo con usar la version 64 bits, claro!
-Si el PC ya tiene instalada la version "normal" de FireBird, no funcionara la embeded.
-fbclient.dll necesita dos dll de microsoft actualizadas, en un windows poco actualizado pueden faltarte, mejor incluirlas en tu instalador (mirar aqui http://www.destructo...nimumclient.htm).
-La ruta a la base de datos TIENE que ser local, no admite conexiones por red (no seria una aplicacion "multipuesto", pero si cambias fbclient.dll por la version normal, ya es multipuesto).

Una precuacion importante con FireBird: Evita quedarte sin espacio de disco mientras usas la base de datos, FireBird te dara un error, y casi seguro te dejara la base de datos estropeada, y seriamente.

Y una ventaja adicional del embeded: Como el fichero es de uso "local", puedes hacer una copia de seguridad desde tu aplicacion sin mas que asegurarte de poder abrir el fichero en modo exclusivo (mode_share_denny creo que era). Si te deja, cierras la conexion al fichero y lo copias como si fuese un txt.
  • 0

#18 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 24 junio 2011 - 04:08


  Bueno he logrado migrar todo a firebird todo a quedado bien, ahora tengo un dilema como hago para ponerle una contraseña diferente a la base de datos, sucede un amigo va a tener una copia de mi programa otro amigo va a tener otra copia, bueno ellos pueden generar los datos usando mi programa ellos puede enviarse las base de datos el uno al otro y las pueden abrir solo con mi programa mas no modificar.  Mi programa crea unos datos en el momento que ellos decidan, estos se guardan y hasta ahi llega la cosa, esos datos no se podran cambiar jamaz, solo verse, si quieren mas datos tendran que empezar de nuevo y crear otros datos.

  En acces yo ponia la contraseña que queria pero aca solo puedo poner la misma.

  gracias a todos por su colaboracion.

  • 0

#19 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 24 junio 2011 - 08:20

Hola mikrosurfer,
El problema, o más bien una pequeña deficencia, de Firebird es que todavía no cuenta con seguridad a nivel base de datos. Recién en la versión 3.0 se prevee este tipo de seguridad.
Si alguien tiene acceso al archivo y lo copia, luego va  hacia un equipo con un user y password que conozca y puede conectarse libremente. Por defecto viene con SYSDBA/masterkey, que es el usuario "maestro". Puedes, y se aconseja, cambiar su clave (masterkey) por alguna otra pero repito: si alguien tiene acceso al archivo basta con copiarlo y probar con una instalación externa por defecto.

Una posible manera de solventar esta deficiencia es, a partir de la versión 2.5 (o 2.1, no recuerdo bien) es hacer uso de los triggers de base de datos. Puedes programarlos para que en ellos se compruebe que el USER Y PASSWORD sea igual a uno que definas. Luego, cada vez que distribuyas el tu aplicación, e instalarles Firebird creas el correspondiente USER y PASSWORD. Si intentan conectarse con uno diferente a ese cierras la conexión.
Ahora bien, no siempre es bienvenida o viable esta técnica.

Otra técnica viable es que dentro de tu base de datos definas una tabla USUARIOS y añades además unos campos de marcas o de verificación. El propósito de éstos es de hacer alguna especie de comprobación entre el dato almacenado y el usuario. Si se comprueba la correspondencia entre éstos se da por válido el acceso. Esto ayudaría a que por más a que se intercambien los archivos y se pasen los usuarios y contraseñas, internamente tu aplicación detecta estas inconsistencias.

Saludos,

  • 0

#20 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 mensajes

Escrito 24 junio 2011 - 09:19

 
  Se me complico todo ahora por lo de la seguridad,

¿alguna recomendacion, otro sistema de base de datos?

  muchas gracias a todos los que me dieron su colaboracion, aunque firebird no me sirve para este proyecto aprendi mucho y en menos de 2 dias, increible lo rapido que uno aprende cuando esta motivao jeje  (y)

    (b)
  • 0




IP.Board spam blocked by CleanTalk.