Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Reempplazo para el lento TClientDataSet

Quisiera saber que me recomiendan ustedes para reemplazar al lento TClientDataSet y que sea libre/gratis

He visto el KmMemtable pero me parece que no es gratis porque en su sitio no dice nada. Me pueden dejar varias alternativas y evaluare cual me conviene o me gusta mas para trabajar.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 05-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
kbmemtable es (o al menos, era) libre.
De todas formas, no entiendo eso de que el tclientdataset es lento, siempre ha sido rápido.
Responder Con Cita
  #3  
Antiguo 05-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Casimiro, si te fijas en Internet en muchas páginas todos se quejan de que el TClientDataSet es lento. Igualmente para descartar te recomiendo que hagas una prueba como he hecho yo.

Yo la prueba la realice comparando el TClientDataSet con el que trae las Jedi y el de las RxLib. Los resultados que me direnon en su momento fue que estos dos ultimos componentes eran mucho mas rápido que el propio de Delphi. De ahí que me decidí a buscar una alternativa para este.

Si haces la prueba con muy pocos registros no se nota diferencia, pero la cosa cambia cuando tenes que trabajar con muchisimos registros como es mi caso.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #4  
Antiguo 05-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por elrayo76 Ver Mensaje
Casimiro, si te fijas en Internet en muchas páginas todos se quejan de que el TClientDataSet es lento.
Bueno, también encuentras "en internet" que windows es bueno

De todas formas, el tkbmemtable y el de las jedi y las rx son "tablas en memoria" que supongo que trabajan distinto.
Yo siempre he usado el tkbmemtable y el de las rx, cuando he necesitado tener tablas en memoria. Son muy, muy rápidos.
Responder Con Cita
  #5  
Antiguo 05-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
No quiero entrar en la polemica de si es o no es bueno algo. Solo te digo para que lo pienses que hasta Linux puede ser malo segun quien lo mire.

Bueno el tema es ese, además de rápido estoy evaluando que me ofrece de distinto o de nuevo cada uno de esos componentes. Hasta ahora no se con cual quedarme es por eso que consulte.

Ya que me dices que has usado el de las RxLib (y parece que te funciono bien y es rápida) y como las tengo instaladas me parece que me inclinaré a usar este asi no tengo que instalar mas cosas. Con las Jedi en mi caso las uso en las empresa donde ya las tienen instaladas, pero en mi máquina son medio reacio a instalarlas debido a que se instalan muchas cosas que no necesito y algunas no se las pued eliminar para no instalar (aunque tiene alguanas cosas interesantes y que funcionan bien).

Una última consulta para cerrar esto. Sabes si las RxLib funcionan bien en 64 bits. Se que funcionan porque las versiones no oficiales lo dicen pero no conosco nadie hasta el momento que las alla probado en 64 bits.

Muchas gracias por tus comentarios.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #6  
Antiguo 05-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El de las RX va muy bien.
No lo he probado en 64 bits.
No me gusta Jedi por lo mismo, porque instala tantísimas cosas que no se usan.
Responder Con Cita
  #7  
Antiguo 05-02-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 914
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Podrías intentar con esto que comente en este hilo...

Saludos cordiales
Responder Con Cita
  #8  
Antiguo 05-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Gracias cloayza por el aporte. Lo había visto hace un tiempo pero nunca lo use ni lo probe.

¿Comparastes los tiempos de usar esa unit con los de otros componentes de terceros tipo KbmMemTable u otros? Sería bueno hacer una prueba y ver que pasa con esos tiempo, ya que si son similares a los de otros componentes no se justifica agregar mas cosas a la compilación ni al Delphi si se tiene alguno instalado y funciona bien y rápido.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #9  
Antiguo 08-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Amigos, he encontrado en distintos sitios de Internet que dicen que las RxMemoryData no funcionan bien desde la versión de Delphi XE hasta la XE4, por lo que no recomiendo usarlos por el momento.

Despues de leer esos comentarios hice una prueba con la versión mas reciente bajada del sitio http://www.micrel.cz/RxLib/ y efectivamente no funcionan como corresponde. Parece que no toma bien los valores cuando se realiza el post.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #10  
Antiguo 09-02-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
En concreto, ¿qué operaciones son las que encuentras lentas?
Responder Con Cita
  #11  
Antiguo 09-02-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por elrayo76 Ver Mensaje
Amigos, he encontrado en distintos sitios de Internet que dicen que las RxMemoryData no funcionan bien desde la versión de Delphi XE hasta la XE4, por lo que no recomiendo usarlos por el momento.
Despues de leer esos comentarios hice una prueba con la versión mas reciente bajada del sitio http://www.micrel.cz/RxLib/ y efectivamente no funcionan como corresponde. Parece que no toma bien los valores cuando se realiza el post.
Saludos,
El Rayo
Pues un excompañero las usa con XE4 y le funciona perfecto
Responder Con Cita
  #12  
Antiguo 09-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Sobre en que operación lo encuentro lento. Te cuento que lo he usado para hacer una importación de datos a Firebird de bases que vienen de DBF (uso los TDbf) y son lentos cuando se trata de insertar muchos registros. Si insertas un solo registro ni te das cuenta. Hablo con una importación de 10.000 registros mas o menos y con unos 5 campos por registro.

También he importado a Firebird con TClientDataSet desde archivos de texto plano, pero no con tantos registros como lo anterior y también he notado que tarda mucho

Con respecto a las RxMemoryData que dicen que funcionan en Delphi XE4, primero hay que ver con que versión de las RxLib esta trabajando. Yo he probado la última versión en Delphi 7 y Delphi XE3 y en los dos casos no funcionan correctamente. Además si te fijas en la página de Netfalí ahí mismo hay gente que dice que a ellos no les funciona y es con varias versiones de Delphi.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #13  
Antiguo 10-02-2014
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Esta bien, no vale la pena entrar en discución por este tema. Una cosa mas, entonces porque todo el mundo se pasa a usar otros componentes en vez de usar los nativos de Delphi TClientDataSet? Por algo será.

Para que quede claro las pruebas que hice fueron insertando dos campos uno string y el otro float. No le hice ningún prosesamiento a esos datos, simplemente los inserte y los resultados fueron que con los TClientDataSet tardaba mas que con los RxLib.

No es que este diciendo algo solo porque en la misma página de kbmMemTable dicen que son mas rápidos que otros. Siempre he tomado con pinsas lo que dicen de cada cosa los desarrolladores porque ellos mismos no van a decir nada malo de lo que hacen y con eso de que son mas rápidos es propaganda.

Si no aporta algun otro componente doy por cerrado esto para no discutir sobre algo que no tiene sentido y que se que cada uno tiene su punto de vista.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #14  
Antiguo 10-02-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elrayo76,

Cita:
Empezado por elrayo76
...que me recomiendan ustedes para reemplazar al...TClientDataSet...que sea libre/gratis...He visto el KmMemtable...Me pueden dejar varias alternativas...
Revisa estos links:
Cita:
VirtualTable Overview : http://www.devart.com/vtable/

A Guide to Using the TClientDataSet in Delphi applications : http://delphi.about.com/od/usedbvcl/...entdataset.htm
Nota de DevArt: You can download binary version of VirtualTable Componet for free using.

Espero sea útil

Nelson.
Responder Con Cita
  #15  
Antiguo 10-02-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola El Rayo.

Según los dos procesos que describes (importar registros a una base de datos e insertar registros en un conjunto de datos de memoria), y tratando de atar cabos con la información que ofreces, podría recomendarte lo siguiente:

1. Para insertar a una base de datos registros que provienen de otra, es mejor prescindir de cualquier componente DataSet, ya que usar éste como intermediario sin duda hará que el proceso sea más lento. Es mejor realizar las inserciones enviando instrucciones Insert Into directamente a la base de datos mediante el objeto Conection/Database que estés empleando.

2. Si por cualquier otra razón, necesitas agregar miles de registros a un conjunto de datos de memoria, la clase nativa TClientDataSet sigue siendo una buena opción. Hay que saber qué propiedades activarle o desactivarle para que no realice trabajo innecesario. Por ejemplo, puedes cambiar su propiedad LogChanges a False, con lo cual obtendrás un beneficio de tiempo notable. Además, aunque es un poco más elaborado, puedes saltarte los clásicos métodos Insert, Append y otros, y agregar los registros mediante llamadas de bajo nivel a las interfaces DSBase y DSCursor que contiene el objeto, es decir, ejecutando directamente rutinas de MIDAS. Con ello te ahorras un montón de trámites que la clase hereda de TDataSet.

Yo me despido de este hilo, pero te invito a sentirte como en casa con las grandes consideraciones que compañeros como Casimiro tienen hacia las personas que necesitan ayuda. Así como él, hay muchos otros que lo único que buscan es apoyar a los miembros de la Comunidad Delphi (siempre y cuando éstos realmente se quieran dejar ayudar). Que tengas bonita tarde, te dejo en buenas manos.

Al González.
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
Insertar registros en TClientDataSet para no actualizarlos delphijm Conexión con bases de datos 9 11-02-2011 20:05:51
TClientDataSet con SQL PacoPepe SQL 3 23-11-2007 19:34:28
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
TClientDataSet y el SO tgsistemas OOP 4 02-08-2004 15:01:20
TClientDataSet saul_montalvo Conexión con bases de datos 1 08-09-2003 04:38:10


La franja horaria es GMT +2. Ahora son las 09:18:28.


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