Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-10-2012
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 gatosoft Ver Mensaje
Al final de cuentas, el punto clave aqui amigo Gherardo es lo que pregunta Casimiro:
Coincido contigo. Desafortunadamente es un vicio que quedó de la época en que se usaban las bases de escritorio y podía uno darse el lujo de tener los 120,000 registros "en la mesa" sin pestañear. Luego se da uno cuenta que se trataba de un lujo por demás innecesario (como la mayoría de los lujos ).

// Saludos
Responder Con Cita
  #2  
Antiguo 24-10-2012
Gherardo Gherardo is offline
Registrado
 
Registrado: dic 2009
Posts: 8
Poder: 0
Gherardo Va por buen camino
Gracias a todos

He hecho la prueva del " while not eof" y el resultado ha sido , con el BDE 10 Segundos.
Con dbx Cuando llevaba 20 minutos me he cansado y he reseteado el programa, con lo cual no se lo que tarda.

el codigo que he utilizado es el siguiente.

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
    If CDSAlbaranes.Active then
 begin
     CDSAlbaranes.Active:=False;
//     CDSLineasAlbaran.Active:=False;
 end
 else
 begin
     CDSAlbaranes.Active:=True;
//     CDSLineasAlbaran.Active:=True;
  ShowMessage('Empiezo');
  CDSAlbaranes.First;
  while not CDSAlbaranes.Eof do
  begin
   CDSAlbaranes.Next;
  end;
  ShowMessage('Termino');
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    If TblCabeceraAlbaran.Active then
 begin
     TblCabeceraAlbaran.Active:=False;
//     TblLineasalbaran.Active:=False;
 end
 else
 begin
     TblCabeceraAlbaran.Active:=True;
//     TblLineasalbaran.Active:=True;
  ShowMessage('Empiezo');
  TblCabeceraAlbaran.First;
  while not  TblCabeceraAlbaran.Eof do
  begin
   TblCabeceraAlbaran.Next;
  end;
  ShowMessage('Termino');
 end;
end;
Probaré lo mismo sin utilizar el clientDataSet, pero entonces ¿como puedo hacer para que el usuario pueda modificar datos?.

De todas maneras el tema es ¿como DBX siendo más actual, no es igual o mas eficiente que BDE?.

¿Debo configurar algo en los componentes DBX?, ¿que no estoy haciendo?

Saludos y Gracias por vuestras suguerencias.
Responder Con Cita
  #3  
Antiguo 24-10-2012
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 Gherardo Ver Mensaje
De todas maneras el tema es ¿como DBX siendo más actual, no es igual o mas eficiente que BDE?.
Es que, en mi opinión, estás enfocando incorrectamente la pregunta. ¿Tu aplicación va a trabajar con una base de datos local? En ese caso, bien podrías quedarte con el BDE.

Pero, si como es de esperarse, tu aplicación va a usar un base montada en un servidor, entonces el BDE ni siquiera es un competidor. Y tratar de usar DBX o cualquier otra tecnología, como si fuera el BDE, con componentes Table, en este caso te dará pobres resultados.

Necesitas usar consultas SQL del tipo:

Código SQL [-]
select * from cliente where nombre like 'MONTOYA%'

es decir, con un filtro que razonablemente restrinja la cantidad de resultados.

Después de un tiempo, te darás cuenta que, en realidad, presentar los 120,000 clientes al usuario para que éste recorra la lista hasta llegar a la M y de ahí buscar Montoya, no sirve de nada. Y, a fin de cuentas, tu usuario terminará agradeciéndotelo, pues para él es más sencillo usar un formulario de búsqueda que recorrer manualmente miles de resultados.

// Saludos
Responder Con Cita
  #4  
Antiguo 24-10-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Gherardo Ver Mensaje
1. pero entonces ¿como puedo hacer para que el usuario pueda modificar datos?.
2. De todas maneras el tema es ¿como DBX siendo más actual, no es igual o mas eficiente que BDE?.
3. ¿Debo configurar algo en los componentes DBX?, ¿que no estoy haciendo?
1. El usuario selecciona el registro a modificar (pides su nombre, código, nif, etc. (depende del programa que estés haciendo)) y lo buscas:
Código SQL [-]
select * from tablaclientes where nif='12345678X'
Ya lo has localizado, ahora sólo haces un 'edit' para que el usuario lo modifique.

2. DBX es mucho más eficiente que BDE. El problema es que lo estás tratando como una obsoleta tabla plana ( lo que en su día era DBF, por ejemplo)

3. ¿Qué estás no haciendo?, es que debes usar cliente/servidor, es una base de datos relacional (un RDBMS), por lo tanto debes usarla como es, no quieras usar un Ferrari para transportar cajas de tomates. Los tiempos han cambiado.

Aquí tienes uno de los mejores libros que puedes encontrar para manejar bases de datos con delphi, está en pdf, es primordial.
Responder Con Cita
  #5  
Antiguo 24-10-2012
Gherardo Gherardo is offline
Registrado
 
Registrado: dic 2009
Posts: 8
Poder: 0
Gherardo Va por buen camino
Bueno veo que tengo que cambiar la mentalidad. Empezare a ver como puedo rediseñar mi aplicación.

Gracias casimiro por el enlace del libro.

Gracias a todos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Comenzando con Firebird... Kenobi SQL 6 15-04-2007 19:44:42
Comenzando de Nuevo con Delphi 2007 dvd2000 Conexión con bases de datos 3 15-04-2007 15:54:40


La franja horaria es GMT +2. Ahora son las 04:53:05.


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