Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2011
Avatar de oesqueda
oesqueda oesqueda is offline
Miembro
 
Registrado: dic 2007
Ubicación: Guadalajara, Mexico
Posts: 66
Poder: 17
oesqueda Va por buen camino
Question Tiempo de respuesta de Actualizacion

Ahora necesito ayuda, agradezco desde antes la que me proporcionen.

Tengo una aplicacion en Access, se que es una porqueria, pero es lo unico que se me pudo acomodar en bases de escritorio porque mi cliente no queria servidores, digamos que salio de mis manos. a veces hay que conceder :s.

Ok, les decia, se actualiza un registro, actualizamos la lista (se cierra ADOConnection y se abre de nuevo con todas las tablas) y no aparece, tiene que pasar un minuto para que se actualice, alguen sabe si esa configuracion esta en el registro o en el motor de Jet 4.0

Es una base de Access 2003, uso ADO (MDAC 2.8) en Windows 7 con Delphi XE con dbGo (TADOConnection, TADODataset).

Gracias por la ayuda
__________________
OEsqueda
Responder Con Cita
  #2  
Antiguo 09-06-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Y porque no usas firebird?

Yo tengo varias aplicaciones que funcionan en sobremesas y portatiles, incluso en un pendrive y no necesitan servidor dedicado, solo debes instalar el motor y a funcionar.

Es mucho más robusto y ágil.

En mis inicios tambien programe en el VB de access y era bastante lento, aunque lo que menos me gusta de las tablas access es que el usuario tenga acceso total a las tablas y a veces lian cada cisco...

Saludos
Responder Con Cita
  #3  
Antiguo 09-06-2011
Avatar de oesqueda
oesqueda oesqueda is offline
Miembro
 
Registrado: dic 2007
Ubicación: Guadalajara, Mexico
Posts: 66
Poder: 17
oesqueda Va por buen camino
Thumbs down

Como te digo, lamentablemente no esta en mis manos, son requerimientos del cliente y asi quedo.
El problema es ese, que al actualizar tarda un rato, se que es cuestion del MSJET pero no he dado donde.
__________________
OEsqueda
Responder Con Cita
  #4  
Antiguo 10-06-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A mi me había pasado esto con MSJet, pero el "retardo" era de apenas unos segundos. Lo de un minuto, la verdad es que no tiene mucho sentido.

¿Cuentas máquinas están funcionando sobre esa Base de Datos?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 10-06-2011
Avatar de oesqueda
oesqueda oesqueda is offline
Miembro
 
Registrado: dic 2007
Ubicación: Guadalajara, Mexico
Posts: 66
Poder: 17
oesqueda Va por buen camino
Mi estimado son unas cuantas, como 5.
La cuestion, si son segundos, pero la desesperacion del usuario son horas, jejeje.

Estoy viendo soluciones alternas que nos ayuden a que entiendan que access no debe ser, pero es que el sistema se cuelga sobre otro, bueno es un cuento largo.

Lo pongo asi, depurando yo en mi equipo.
Tengo el access abierto con la base de datos, posicionado en el registro X, si por el software modifico el registro X y en acess solo cambio de registro automaticamente se actualiza, pero no es inmediato. He notado que ese comportamiento lo tengo con ADO, con un simple Close - Open, pero tengo que esperar ese tiempo que te digo, no se si me di a entender, porque ya me hice bolas yo.
__________________
OEsqueda
Responder Con Cita
  #6  
Antiguo 22-06-2011
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Hola Colegas,

Tengo algo parecido, si me pueden dar ideas o ayudar para optimizar el tiempo que demora en llenar una tabla access.
(Vi algo que ya se trato en otro hilo con una respuesta buena, pero no lo encuentro)

Necesito crear una tabla access con datos de otras tablas access que se encuentran en un servidor, hasta aquí todo bien, lo que sucede es que se demora mucho tiempo al poblar la nueva tabla.
Son como 10.000 registros los que necesito extraer.
Quiero decir que no puedo utilizar otro tipo de BD, por que el cliente ya tiene todo montado en access (desafortunadamente).

Pego el código de como lo hago; creo que de una u otra forma se puede optimizar, pero para ello necesito de su ayuda e ideas.

Gracias de antemano.

NeoNew

Código Delphi [-]

  ADOTablePedido.Filter := 'FechaRegistro > '+DateToStr(myDate);
  ADOTablePedido.Filtered := True;

  while not ADOTablePedido.Eof do
  begin
    if  Not(ADOTablePedido.FieldByName('AnularPedido').AsBoolean) then
    begin
      stPedidoNumero := QuotedStr(ADOTablePedido.FieldByName('PedidoNumero').AsWideString);
      ADOTablePedido2.Filter := 'PedidoNumero = ' + stPedidoNumero;
      ADOTablePedido2.Filtered := True;
      while not ADOTablePedido2.Eof do
      begin
        if (ADOTableProdTerminado.Locate('NumeroOrdenCompra;CodigoItem',VarArrayOf([ADOTablePedido2.FieldByName('PedidoNumero').AsString,ADOTablePedido2.FieldByName('CodigoProducto').A  sString]), [])) then
        begin
          stNumLote :=  QuotedStr(ADOTableProdTerminado.FieldByName('NumLote').AsWideString);
          stFechaSalida := QuotedStr(Copy(ADOTableProdTerminado.FieldByName('FechaRegistro').AsString,1,10));
        end;
        if (ADOTableListaDetalles.Locate('CodigoPT',ADOTablePedido2.FieldByName('CodigoProducto').AsString, [])) then
        begin
          stNombreDetalle := QuotedStr(ADOTableListaDetalles.FieldByName('Nombre').AsString);
          stSolvente :=  QuotedStr(Trim(ADOTableListaDetalles.FieldByName('Solvente').AsString));
        end;

        cadena := 'INSERT INTO ListaPedidos(.........)';
        cadena := cadena + 'VALUES (stPedidoNumero,stNumLote,stNombreDetalle...';
        cadena := cadena + ')';

        ADOQueryPedidos.SQL.Clear;
        ADOQueryPedidos.SQL.Text := cadena;
        ADOQueryPedidos.ExecSQL;

        ADOTablePedido2.Next;
      end;
    end;
    ADOTablePedido.Next;
  end;
__________________
Pre-Alpha
Responder Con Cita
  #7  
Antiguo 23-06-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Es posible que el problema radique en como abres la base de datos access, si lo haces a modo local en el ordenador principal o lo haces en red, se debe de abrir la base de datos todos por igual aunque la aplicación esté en el principal, creo que puede ser el retraso que tienes.

Un saludo.
Responder Con Cita
  #8  
Antiguo 23-06-2011
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Gracias olbeup

CursorLocation = ClUseServer en ADOs me permitió bajar un poco el tiempo, pero sigue bastante lento.
__________________
Pre-Alpha
Responder Con Cita
  #9  
Antiguo 27-06-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Tienes algún antivirus en el servidor, si es así, excluye de los archivos de rastreo la base de datos.

Un saludo.
Responder Con Cita
  #10  
Antiguo 28-06-2011
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Mirando y mirando, creo que la demora significativa esta en los Locate, para lo cual no se si exista alguna alternativa mas rápida, lo intente por slq, pero se demora mocho mas, no se que hacer para bajar el tiempo.
Por ahora se me ocurre preguntar por la fecha de modificación de las tablas de Access y así hacer o no el llenado de la tabla nueva.
Entonces.
Si alguien me puede ayudar con lo siguiente:
1. Alternativas al Locate.
2. Como saber la fecha de modificación de una tabla Access.

Gracias.

olbeup : Gracias, antivirus no es.
__________________
Pre-Alpha

Última edición por NeoNew fecha: 28-06-2011 a las 15:25:28.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
consultas con excesivo tiempo de respuesta a una tabla eddvedder Conexión con bases de datos 1 22-01-2009 20:35:25
Tiempos de Respuesta Maury Manosalva MySQL 2 01-02-2007 17:59:46
Tiempo de respuesta en Volumen de datos saulpm007 Firebird e Interbase 0 13-10-2004 02:19:10
Dar tiempo de respuesta a una consulta Eolo Conexión con bases de datos 2 19-02-2004 15:30:15
Respuesta danytorres Varios 2 16-07-2003 20:55:43


La franja horaria es GMT +2. Ahora son las 01:05:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi