Tablas SQL SERVER vinculadas en Access

Tengo montado un sistema cliente/servidor de bases de datos y aplicaciones Access. Quiero migrar las tablas a SQL Server para mejorar el rendimiento vinculándolas en Access vía ODBC, pero me he encontrado con 3 problemas principales:
Campos autonuméricos (con identidad)
En Access el codigo autonumerico se genera al comenzar a escribir en un registro nuevo. Por el contrario, en SQL el autonumerico se asigna al guardar el registro. ¿Puede simularse el funcionamiento de Access o forzar la asignación del autonumerico?
Mensajes de error
Cuando se producen errores (campos obligatorios, etc) ademas de los mensajes Access, se muestran los mensajes generados por SQL que son bastante extraños para los usuarios. ¿Pueden eliminarse estos mensajes o personalizarlos?
Mezcla de tablas
Las consultas Access entre tablas vinculadas a SQL son muy rápidas pero al mezclar tablas SQL con tablas Access el rendimiento baja muchísimo, es peor que el puro de Access. Incluso con tablas locales a la propia aplicación (es decir, en el disco duro del usuario), con claves primarias, etc., el rendimiento es muy, muy bajo. ¿Cómo puedo solucionarlo?

1 respuesta

Respuesta
1
>Campos autonuméricos (con identidad)
La asignación del Nro de campos autonuméricos en access es un error con el cual Los programadores (Nosotros) hemos tenido que vivir. Es un error, ya que te da un nro sin haber realizado la orden de almacenamiento, internamente, incrementa un contador que las demás estaciones respetan, si en ese momento decides NO ALMACENAR, el Nro queda desaparecido, es decir hay saltos en la secuencia, por lo que no puedes contar con ese nro si deseas llevar un control, como lo es el Nro de Factura o Documento.
Resumen: deberías adaptar su sistema para que se adapte al nuevo mecanismo de autonumeracion. No significa que No lo puedas Hacer, Lo puedes hacer creando un trigger BEFORE INSERT de la tabla, pero va a ocurrir exactamente como access.
>Mensajes de error
Debes crear un mecanismo de control de Errores. Ej:
On error Goto MyError
Exit Sub
Myerror:
select case err.number
  case xx:
     Messagebox("Muestro lo que quiero mostrar)
  case yy:
   ' No hago nada
end sub
>Mezcla de tablas
Nunca hagas enlaces entre tablas Access y las vinculadas SQL, porque Los Indices primarios no pueden ser usados de la misma forma y la búsqueda es indexada (LENTA), nota que no puedes hacer integridad referencial entre estos dos tipos de tablas.
Si es estrictamente Necesario, Haz las búsquedas entre estas tablas a nivel de Programación.
Muchas Gracias.
Tu respuesta se ajusta a las tres cuestiones que planteaba y de forma clara. Es probable que no aborde el proyecto de migración porque veo que requiere bastante trabajo y tiempo para modificar el conjunto de aplicaciones. Quizás en el futuro. En cualquier caso, como decía, totalmente satisfecho con tu respuesta.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas