Foros del Web » Programando para Internet » ASP Clásico »

Base de Datos Acces ? sirve?

Estas en el tema de Base de Datos Acces ? sirve? en el foro de ASP Clásico en Foros del Web. Hola amigos del foro !!! Arme un sitio web en asp que se conecta con una base de datos Acces.Se por lo que lei aca ...
  #1 (permalink)  
Antiguo 10/06/2007, 22:42
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 19 años, 5 meses
Puntos: 1
Base de Datos Acces ? sirve?

Hola amigos del foro !!!
Arme un sitio web en asp que se conecta con una base de datos Acces.Se por lo que lei aca que el acces como base de datos es casi nulo, pero la verdad es que para el proposito para el cual esta diseñada alcanza.
El problema en si es que yo tengo una base con ciertos articulos y pesa 200Kb. Despues, con el tiempo, si agrego articulos (mediante las paginas porsupuesto) y borro otros, la pagina derrepente ocupa 600Kb !! y tiene menos datos que antes !!. Entonces lo que hago es seleccionar una opcion en Acces que es "Compactar y Reparar" y entonces pesa 170Kb. Ovbiamente no puedo estar eligiendo esa opcion todos los dias en el servidor, por eso pregunto: alguien sabe que hay que hacer para que no pase esto?
  #2 (permalink)  
Antiguo 11/06/2007, 01:37
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Base de Datos Acces ? sirve?

Yo tengo clientes con BD Access que pesan entre 10 y 20 Mb y llevan sin problemas mas de 2 años. Ahora, eso si, no esperes que se puedan conectar más de 5 usuarios a la vez o que puedas hacer mas de 7 consultas (ya sean de seleccion y/o Accion) a la vez.

Ese cambio despues de hacer "Compactar y Reparar" se debe a que Access guarda mucha información sobre los cambios realizados en la BD. Desde luego, elegir Access para un foro es una locura. Tampoco es una buena idea para un portal. Pero si lo es para un catálogo de una Inmobiliaria por ejemplo. O de una fábrica de artesanía.

Dependerá de las necesidades de tu cliente.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 11/06/2007, 06:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Base de Datos Acces ? sirve?

Perfecto entonces, porque mi caso es parecido al tuyo.
Entonces aprovecho a hacerte algunas preguntas:
Tengo miedo de que si muchos usuarios (maximo 5) al mismo tiempo se ponen a ingresar datos en la base esta se tilde o algo asi, esto pasa? y si pasa, hay alguna forma de solucionarlo?
Te pregunto porque tengo miedo de subir el sitio y que derrepente empiecen a aparecer datos mezclados y todo eso.
Yo las conexiones las uso asi:
Código:
sql= "select * from Usuarios "               
set rs = server.createobject("adodb.recordset")
rs.open sql, conexion,3,3
do while not rs.eof
.
.
.
rs.movenext
loop

///////////////////////////////////

sql= "insert into Usuarios(nombre,edad) values('"&nombre&"','"&edad&"')" 
set rs = server.createobject("adodb.recordset")
rs.open sql, conexion,3,3
Por dar unos ejemplos.
Creo que al consultar la base no hay problemas, pero tengo miedo al ingresar datos, por ejemplo que dos ingresen un articulo exactamente al mismo tiempo y se tilde todo
  #4 (permalink)  
Antiguo 11/06/2007, 07:19
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Base de Datos Acces ? sirve?

Segun veo usas bloqueo optimista para la apertura de datos (el ultimo 3 que pones en el método open del recordset). Si quieres más seguridad, puedes realizar bloqueos pesimistas (2), o que haga las actualizaciones en batch (4).


Hay una pestaña en el menú herramientas-->opciones del Access en el cual puedes modificar muchas cosas: el número de intentos de actualizacion antes de mandar el mensaje de error, el intervalo de actualización por ODBC, el intervalo entre intentos de actualización, etc. Además del modo de apertura (Compartido o exclusivo), el bloqueo predeterminado de registros, etc. Aparte de ver estas opciones (yo las dejaría como están pero dependerá de ti. Ten cuidado al modicar cosas allí) Access bloquea por páginas (a no ser que esto haya cambiado a partir del 2000) en vez de por registros por lo que la seguridad es aun mayor si cabe. Desde luego no es MSSQL pero es bastante apañadita. Casi te diría que es de lo mejorcito que ha hecho Microsoft, es compatible con T-SQL en un 95%, soporta conexiones por red, hace bloqueos, comprueba la integridad referencial, ... , en fin, ¿Qué más le puedes pedir a una BD de andar por casa?


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 11/06/2007, 07:51
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Base de Datos Acces ? sirve?

Tammander gracias por contestar mis preguntas
La realidad es que yo no intento tener una seguridad alta, solo quiero asegurarme que teniendo tres o cuatro personas modificando, eliminando y agregando datos no se tilde o de error, o sea, yo no se si como viene por default (que preferiria no meter mano) ya funciona sin problemas.
Por ejemplo: que un usuario esta modificando un articulo y apriete en "Guardar Cambios" exactamente al mismo tiempo que otro. Que pasa?
Me preocupa porque es algo muy dificil de probar con dos maquinas y quiero estar seguro de que ande bien.
  #6 (permalink)  
Antiguo 11/06/2007, 18:26
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Base de Datos Acces ? sirve?

cabe mencionar que entre usuarios normales...
esto no pasaria ya que estos serian lentos en las capturas de los datos e incluso en la interaccion misma de la aplicacion.

De hecho, creo que la unica posibilidad de que tu base se colapse o se congele en estos sentidos es que entraramos usuarios como nosotros que exprimiriamos a la base de datos por nuestras consultas o inserciones de alta demanda..

y en dado caso de que requieras "compactar y reparar" la base de datos de access, en ESTA PAGINA, hay un ejemplo de como realizar dicha operacion mediante un script
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 11/06/2007, 20:31
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Base de Datos Acces ? sirve?

Muchisimas Gracias Shiryu !!!
La verdad que con ustedes aprendo todo !!

Otra pregunta !!
Tengo una lista en la base de datos con algunos articulos. Hice una opcion en la cual el usuario en caso de querer cambiar muchos articulos a lavez los pueda tildar con checkboxes y luego elejir el cambio que quiera hacer, que puede ser borrar precios, codigos, etc. Una vez que el usuario tildo sus checkboxes, la pagina le muestra los articulos que eligio pidiendo una ultima confirmacion para los cambios, y luego el usuario le da ok y es ahi donde hace el cambio en la lista. O sea que mientras lo que hace es crear una lista temporal con los cambios y cuando le da ok copia esos datos cambiados a la lista original.
Supongamos que mientras este usuario esta haciendo uso de este cambio grupal, otro al mismo tiempo intenta borrar uno de los articulos..... le explota el monitor en la cara !!
Yo lo que hago en estos casos, como soy medio picapiedra es hacer una tabla que se llama Ocupado, entonces al empezar este proceso de los cambios grupales pone True en Ocupado y lo libera cuando termino todo.
Hay alguna forma mas civilizada de hacer esto???
  #8 (permalink)  
Antiguo 11/06/2007, 21:06
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Base de Datos Acces ? sirve?

en cierta manera crear una tabla temporal te saca de apuros pero debemos considerar que al hacer esto, haces que el servidor trabaje un tiempo extra...

ahora, considerando que un usuario crea la lista de X cantidad de articulos, y si el usuario 2 quiere crear una lista de algunos elementos que el usuario 1 tomo, como se lo negarias? buena interrogante....

tenemos que considerar todas esas variables al realizar ese tipo de eventos que inluiran en nuestras bases.... de hecho nosotros debemos pensar en todo eso... incluso cuando no se llevarian a cabo en el proyecto, de hay la buena estructura de nuestro sistema y nuestra base

hace poco realizamos una minicompetencia, donde Al_Zuwaga(), implemento un poco de codigo de AJAX, que llamo un poco mi atencion, y no esta mal... te explico...

un campo de un caracter, llamado "estado", valores? 0(cero)=sin uso, 1=en edicion, 2=algo mas,... para que esto... simple.... si realizas esa consulta que pretendes donde tu usuario eliminara de cierta base o modificara... mediante AJAX, cambias el estado de ese registro mediante el evento onclick de ese check box

suena un poco estresante o complicado, pero realmente es algo efectivo y que te evitara dolores de cabeza posteriores

bueno, cuando se trata de inventar algo, me un poco...

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 12/06/2007, 18:01
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Base de Datos Acces ? sirve?

normalmente eso se hace con transacciones, la base de datos deja entrar unicamente a una conexión a la vez a la base, y los demas quedan bloqueados o en cola esperando que el anterior termine, y asi va pasando uno por uno en orden de llegada a no ser que se manejen prioridades en las conexiones que se hagan, los comandos de transacción se manejan desde la base de datos y son 3:
conexion.begintrans (apertura la conexión)
conexion.committrans (cierra la conexión con éxito)
comexion.rollbacktrans (cierra la conexión por error)

la primera es mas que obvia, la segunda ocurre cuando la grabación fue satisfactoria la tercera ocurre cuando ocurrió un error en la grabación y eso hace que todo lo actuado sobre la base de datos desde el begintrans hasta el momento del rollbacktrans quede inválido, es decir, tu base de datos no se afecta ni se altera por nada, una vez la conexion haya sido cerrada es que el siguiente usuario entra, estos comandos no son automáticos, son programados y deben ser usados únicamente en actualizaciones de base de datos para evitar bloqueos innecesarios a los demás usuarios, ademas de no poner ningun mensaje de alerta dentro de una transaccion porque si el usuario no acepta el mensaje entonces nadie pueda hacer nada mas en la base de datos.

estos comandos no los maneja el Access almenos hasta la version 2000 que es la última que conozco, es por ese motivo que particularmente yo no recomiendo el Access a nadie a no ser que sea para uso local, es decir una base de datos local o una base de datos de apoyo o en todo caso donde solo tendré un usuario a la vez en cada opción o en cada actualización de tablas.

Saludos y buena suerte.
  #10 (permalink)  
Antiguo 12/06/2007, 18:07
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Base de Datos Acces ? sirve?

excelente comentario compañero Cesar(), me interesa eso que has comentado sobre las 3 propiedades, vere en San Google, que se puede obtener...

saludos
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #11 (permalink)  
Antiguo 13/06/2007, 11:37
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Base de Datos Acces ? sirve?

Agrego a mi mensaje anterior sobre transacciones y el porque no suelo recomendar el Access (hasta la versiòn 2000 que es la ùltima que conozco) es que al no haber transacciones, unido a no haber constraints, la garantìa de integridad de informaciòn es casi nula, cito como ejemplo que se tenga que actualizar 4 tablas en cascada, donde una depende de la otra y asi susecivamente, si en la 3 tabla ocurriò un error llamese bloqueo, timeout, o cualquier otro, la data de las 2 primeras tablas queda grabada y la de las 2 siguientes no, por lo que la informaciòn ya no serìa confiable (eso se soluciona con transacciones cosa que el Access no maneja).

Otra de las desventajas es que no se pueden crear Stored Procedures por lo que los query's deben realizarse en los mismos programas cosa que para ser ASP no afecta mucho dado a que se ejecuta en el mismo servidor a no ser que la base de datos se encuentre en un servidor diferente a donde residen los ASP, otra falencia que le encuentro al Access es que no pueden crearse Triggers.

Pero para no ser tan duro con el pobre Access podrìa dar algunos datos a su favor, como por ejemplo su portabilidad y que es muy "amigable" de usar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.