Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2017
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Poder: 17
Camilo Va por buen camino
Mil gracias cloayza por tu tiempo y colaboracion.
Ahora mismo hago esa revision y cambio las cosas. sinembargo me queda una inquietud. Esos comentarios acertados que me haces si tienen como consecuencia un "Out Of Memory"; por que antes de los 100 mil registros aun estando igual no daba ese error. Gracias Amigo cloayza
Responder Con Cita
  #2  
Antiguo 25-01-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Ademas, este tipo de procesos es mas rapido si se ejecuta dentro del motor de SQL y usando SQL.

Que motor usas?
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 26-01-2017
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Poder: 17
Camilo Va por buen camino
Hola mi compatriota mil gracias por tu apoyo.
Cita:
Empezado por mamcx Ver Mensaje
Ademas, este tipo de procesos es mas rapido si se ejecuta dentro del motor de SQL y usando SQL.

Que motor usas?
Resulta que esta base de datos era en Paradox Pero migre a Firebird y no he tenido el tiempo para cambiar todos los Componentes BDE y cambiar la programacion ajustado los procedimientos al Firebird. Entonces es un hibrido ahi raro de BD firebird con componentes BDE y algunas tablas y querys que he logrado modernizar con componentes IBX. Espero una manita en este asunto
Responder Con Cita
  #4  
Antiguo 26-01-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Camilo Ver Mensaje
Espero una manita en este asunto
El asunto es que el código es un spaguetti, y optimizarlos es... re escribirlo.

Por seguro, cuando un código es simple es generalmente eficiente, y es más fácil de optimizar.

En terminos generales, deberias poder visualizar el codigo siguiendo esta idea:

Cita:

ResultadosIniciales -> Reducir al maximo usando filtros -> Procesar por N* -> Formatear y Visualizar

* Donde N puede ser = 1 o por un numero batch, que entonces seria:

Filtros -> Procesar Por N=100 -> Procesar por 1 ->
La idea es que cuando llegues a la GUI, tengas los datos estructurados de forma tal que solo tengas que hacer transformaciones de visualizacion esteticas o ajustar al idioma/locale del usuario.

Esto se llama un pipeline de datos o linea de datos.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 26-01-2017
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Poder: 17
Camilo Va por buen camino
Gracias mamcx lo tendre en cuenta para cuando cambie toda la metodologia de ese programa. Gracias
Responder Con Cita
  #6  
Antiguo 25-01-2017
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 22
Manuel Va por buen camino
Yo creo que tu problema no es la base de datos si no que los arrays que tienes, están almacenando todos los registros en ellos y te quedaste sin memoria.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #7  
Antiguo 26-01-2017
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Poder: 17
Camilo Va por buen camino
Hola Manuel mil gracias por tu aporte.
Cita:
Empezado por Manuel Ver Mensaje
Yo creo que tu problema no es la base de datos si no que los arrays que tienes, están almacenando todos los registros en ellos y te quedaste sin memoria.
yo tambien me encamino por ahi, creo que el problema real esta en lo que planteas. desafortunadamente no se como particionarlo o segmentarlo. solo y es solo si tuvieras el tiempo de echarme una manito con una orientacion te prometo que estudio y lo saco adelante. gracias.
Responder Con Cita
  #8  
Antiguo 26-01-2017
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 22
Manuel Va por buen camino
Cita:
Empezado por Camilo Ver Mensaje
Hola Manuel mil gracias por tu aporte.


yo tambien me encamino por ahi, creo que el problema real esta en lo que planteas. desafortunadamente no se como particionarlo o segmentarlo. solo y es solo si tuvieras el tiempo de echarme una manito con una orientacion te prometo que estudio y lo saco adelante. gracias.
Pregunta, ¿para que cargas en un array lo datos?, eso nos podría dar luces.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #9  
Antiguo 26-01-2017
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 147
Poder: 17
Camilo Va por buen camino
Hola Manuel. Cuando quiero introducir un registro mas una vez (siendo identico) entonces lo cargo y con una funioncilla que hay por ahi inmersa en el codigo lo repito las veces que yo le indique. Por ejemplo: Ape1, ape2, Nom1, Nom2, Codigo, Procedimiento, valor..... esa informacion la cargo la repito 5 veces. Es por eso. Con el primero no da lio lo graba bien a partir del segundo es que ouchhhh.... el error.

Última edición por Camilo fecha: 26-01-2017 a las 13:44:59.
Responder Con Cita
  #10  
Antiguo 26-01-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Camilo Ver Mensaje
Es por eso. Con el primero no da lio lo graba bien a partir del segundo es que ouchhhh.... el error.
No se te entiende bien lo que dices. Seria mejor que pusieras un ejemplo con datos.
__________________
El malabarista.
Responder Con Cita
  #11  
Antiguo 25-01-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Camilo Ver Mensaje
Esos comentarios acertados que me haces si tienen como consecuencia un "Out Of Memory"; por que antes de los 100 mil registros aun estando igual no daba ese error.
Y porque no mides la memoria? Puedes usar el monitor de rendimiento para ello.

Y el porque antes si y ahora no?

Porque antes lo que hacias cabia en memoria, pero le subiste 1 y ya no. La memoria es finita.
__________________
El malabarista.
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
Me aparece el error "Insufficient memory for this operation." ilichhernandez Varios 5 23-07-2010 18:48:16
¿como Puedo Cancelar La Inserción De Los Últimos Registros "insertados" OscarBravo Tablas planas 1 23-07-2007 19:26:35
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Evitar el "Refresh" del ClientDataSet leanfreue SQL 2 14-04-2007 23:41:38
"Insuficcient memory for this operation" elcigarra Varios 1 08-12-2005 15:19:51


La franja horaria es GMT +2. Ahora son las 18:44:43.


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