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 07-03-2007
Avatar de Bicholoco
Bicholoco Bicholoco is offline
Miembro
 
Registrado: mar 2007
Posts: 21
Poder: 0
Bicholoco Va por buen camino
Tablas paradox

En primer lugar, hola a todos los que me lean.

Tengo un problema. Llevo algún tiempo manejando Delphi, pero hace poco entré en bases de datos y me estoy volviendo loco.

Tengo que crear una base de datos no excesivamente grande.La tabla es sencillita: 2000 elementos (filas) con 8-10 valores(columnas) cada una.

Pero ha de ser rapidilla porque se leerán/modificarán esos miles de datos de una vez. La tabla almacena datos de un cálculo largo y mi programa en Delphi debe leer lo valores de las primeras columnas de la tabla, calcular con ellos, y escribir los resultados en el resto de la tabla.

Todo se ejecuta en un mismo ordenador (nada de consultas a un servidor).

He probado con un DataSource, un ClientDataSet y un DBGrid (con un archivo *.cds), pero cuando la cosa se hace grande, aquello se ralentiza.

Tengo 2 dudas.

- ¿Veis correcto emplear mejor una tabla Paradox? ¿O sería mejor otro tipo?. Tengan en cuenta que apenas poseo conocimientos de bases de datos, pero no quiero que se ralentice todo mucho.

- En tal caso, ¿Como puedo crear dicha base de datos?¿Y enlazarla a Delphi?( Los TDataBase, TTable y esas cosillas del Form).

Sé que es una pregunta muy general, con respuesta algo larga, pero es que no he tocado nada de BBDD nunca. Y siguiendo los libros estoy algo loco.

Mil gracias por adelantado.

PD: Al que me lo resuelva, le hago un monumento.
Responder Con Cita
  #2  
Antiguo 07-03-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Paradox

Te recomiendo que utilices MYSql con los componentes de ZeosLib, pues es mas facil controlar tus registros, ademas mysql es facil de utilizar, en red o local Paradox es muy malo, yo estoy con ese problema ahora :S
Responder Con Cita
  #3  
Antiguo 07-03-2007
Avatar de Onti
Onti Onti is offline
Miembro
 
Registrado: jul 2003
Ubicación: La Paz - Bolivia
Posts: 500
Poder: 21
Onti Va por buen camino
FireBird es una gran opcion
Responder Con Cita
  #4  
Antiguo 07-03-2007
Avatar de Onti
Onti Onti is offline
Miembro
 
Registrado: jul 2003
Ubicación: La Paz - Bolivia
Posts: 500
Poder: 21
Onti Va por buen camino
Aqui coloque un ejemplo simple de la conexión a una bd
Responder Con Cita
  #5  
Antiguo 07-03-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Creo que lo que quieres hacer se puede realizar perfectamente con Paradox, porque 8.000 registros los puede manejar sin gran dificultad, el problema quizás venga dado porque mientras actualizas no desconectas la rejilla de la fuente de datos y esto hace que vaya lento prueba y nos cuentas.


Código Delphi [-]
           DmXX.Cli.DisableControls;

         Try

           while not(Data.eof) do
            begin

             for columna := 0 to Dbgrid1.Columns.Count-1
             do
             begin
             excel.Cells[fila,columna + 1].Value:=Data.FieldByName(Dbgrid1.Columns[columna].FieldName).asString;
            end;
              Data.Next;
              fila:= fila + 1;
           end; 
                     Except
         ShowMessage('Atención, se produjo un error en la transmisión.');
         end;
         DmXX.Cli.EnableControls;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 07-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por marcoszorrilla
el problema quizás venga dado porque mientras actualizas no desconectas la rejilla de la fuente de datos y esto hace que vaya lento
¡Ah! ¡Eso debe ser! Ya me extrañaba que le fuera lento, sobre todo porque la prueba la hizo con un ClientDataSet.

// Saludos
Responder Con Cita
  #7  
Antiguo 08-03-2007
Avatar de Bicholoco
Bicholoco Bicholoco is offline
Miembro
 
Registrado: mar 2007
Posts: 21
Poder: 0
Bicholoco Va por buen camino
Cita:
Empezado por roman
¡Ah! ¡Eso debe ser! Ya me extrañaba que le fuera lento, sobre todo porque la prueba la hizo con un ClientDataSet.
¿Insinuas que los ClientDataSet son rapidillos?
Pues como me da pereza empezar de cero, voy a seguir con ellos.

Y si, la culpa de que fuera lento era por el DbGrid. Ha sido desactivarlo e ir todo como la seda.

Gracias a todos por la ayuda. En breve comenzaré la construcción del monumento.
Responder Con Cita
  #8  
Antiguo 08-03-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Si lo que necesitas es velocidad, prueba dos cosas. Primero desconectar todos los controles visuales mientras haces las operaciones con ClientDataset.DisableControls (cuidado, también se desactivarán las relaciones maestro-detalle si las tienes). No hacer ningún ApplyUpdates hasta que hayas finalizado, así el ClientDataset trabajará siempre en memoria.
Responder Con Cita
  #9  
Antiguo 08-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por basti
cuidado, también se desactivarán las relaciones maestro-detalle si las tienes
Gracias por la información, no estaba al tanto de eso. Y para complementar, según la ayuda, al parecer podemos lograr el mismo efecto del DisableControls poniendo Table.BlockReadSize igual a un valor positivo. Con esto los controles de datos no se actualizan ni se generean eventos, pero no se rempre la relación maestro-detalle.

// Saludos
Responder Con Cita
  #10  
Antiguo 08-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por roman
según la ayuda, al parecer
Lo ratifico, he usado blokReadSize con excelentes resultados en tablas paradox.

Cita:
Empezado por Ayuda de BlockReadSize
For BDE-enabled datasets, setting BlockReadSize also causes the dataset to fetch database information in blocks of BlockReadSize records, which it then buffers.
No asignemos un 1 a BlockReadSize, quizás un valor de 50 o 200 según la cantidad de información que se quiera rescatar de un golpe.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 08-03-2007 a las 20:38:26.
Responder Con Cita
  #11  
Antiguo 08-03-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Cita:
Empezado por roman
podemos lograr el mismo efecto del DisableControls poniendo Table.BlockReadSize igual a un valor positivo. Con esto los controles de datos no se actualizan ni se generean eventos, pero no se rempre la relación maestro-detalle.
Gracias por la información, esta no la sabía yo.
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
Problemas Con Tablas Paradox Mario1980 Conexión con bases de datos 5 24-02-2005 13:13:45
SUM en tablas paradox Gabriel2 SQL 3 29-11-2004 22:21:42
3 tablas de paradox OmarMtz Conexión con bases de datos 2 06-11-2004 01:59:56
Seguridad Tablas Paradox pablo Conexión con bases de datos 3 23-07-2004 19:00:11
tablas paradox borreguito Varios 3 27-11-2003 23:56:57


La franja horaria es GMT +2. Ahora son las 00:53:23.


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