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 17-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me ha extrañado mucho lo de los problemas comentados con el componente "Table" y yo no recuerdo que fuese tan malo, aunque la última vez que lo usé hace tantos años que ni me acuerdo, así que he hecho una prueba muy simple, apenas he tardado 5 minutos en escribir el proyecto y grabarlo en video.

Solamente quería comprobarme a mí mismo y de paso recordar cómo iba, porque no me gusta contar algo que esté equivocado, quería estar seguro, así que esto es lo que he hecho:

He abierto una vieja máquina virtual con windows XP y delphi 2007, he creado un nuevo proyecto.
De la pestaña Interbase (son los componentes IBX) he añadido un ibdatabase, un ibtransaction y un ibTable.
Lo he conectado a una base de datos firebird 2.5 de una gestión contable que hice hace unos años.
He puesto un dbgrid, un dbnavigator y unos botones para conectar y otro para hacer una búsqueda.
No hay nada de código SQL, ni Query, ni nada de nada, solamente el componente "table".

He añadido (con ibexpert) a una de las tablas 110.000 registros que más los que tenía, suman un total 110.053 registros.
Son poquitos, pero para hacer una prueba creo que valen, y el test lo he grabado en video.

Botón conectar es instantáneo, desconectar igualmente, vuelta a conectar al instante.
Voy al final de la tabla, casi instantáneo. Voy de nuevo al principio, instantáneo.
En el registro 100.000 la descripción es "HOLA", le doy a buscar, que usa un simple locate y se puede ver que es instantáneo.
Avanzo hacia arriba (retrocedo) un poco y edito un registro cambiando su descripción también por "HOLA", es instantáneo, la edición de cualquier registro no tarda absolutamente nada.
Voy de nuevo al principio y le doy a buscar, encuentra el registro editado también instantáneamente.
Desconectar y salir.

Aquí está el video de prueba.
Y aquí está el código fuente, nada de SQL, ni nada de nada.
Código Delphi [-]
unit Unit6;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, IBCustomDataSet, IBTable, IBDatabase, ExtCtrls,
  DBCtrls, StdCtrls;

type
  TForm6 = class(TForm)
    IB1: TIBDatabase;
    TR1: TIBTransaction;
    ibtbl1: TIBTable;
    ds1: TDataSource;
    dbgrd1: TDBGrid;
    dbnvgr1: TDBNavigator;
    pn1: TPanel;
    bt2: TButton;
    bt1: TButton;
    ed1: TEdit;
    bt3: TButton;
    procedure bt1Click(Sender: TObject);
    procedure bt2Click(Sender: TObject);
    procedure bt3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.bt1Click(Sender: TObject);
begin
  ib1.Connected := not(ib1.Connected);
  tr1.Active := ib1.Connected;
  ibtbl1.Active := ib1.Connected;
  ds1.Enabled := ib1.Connected;
  if not(ib1.Connected) then
    bt1.Caption := 'Conectar'
  else
    bt1.Caption := 'Desconectar';
end;

procedure TForm6.bt2Click(Sender: TObject);
begin
  close;
end;

procedure TForm6.bt3Click(Sender: TObject);
begin
  ibtbl1.Locate('NOMBREPROVINCIA',ed1.Text,[]);
end;

end.
Responder Con Cita
  #2  
Antiguo 17-04-2019
Javierus Javierus is offline
Miembro
 
Registrado: jun 2017
Posts: 88
Poder: 7
Javierus Va por buen camino
Gracias por la ayuda, Casimiro
Volveré a probarlo, porque que esa prueba la hice hará tres años, y no debo de recordar bien dónde estaba el problema.

En mi caso las pruebas no deberían ser difíciles, dado que nunca utilizo el TTable directamente; usuarios uno propio heredado de TTable, por lo que bastará con encapsular en él el IBXTable. Ya tenía previsto probar el ElevateDB que me recomendó Newtron, así que probaré ambos

Gracias de nuevo a todos; ya informaré de mi experiencia
Responder Con Cita
  #3  
Antiguo 17-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, prueba el elevatedb, creo que te gustará, va bastante bien también.
Lo único, que no es libre.
Responder Con Cita
  #4  
Antiguo 19-04-2019
Javierus Javierus is offline
Miembro
 
Registrado: jun 2017
Posts: 88
Poder: 7
Javierus Va por buen camino
Comprobado: se puede instalar el paquete del BDE y funciona perfectamente
El único problema es que te tienes que buscar la vida para conseguir el paquete del BDE, porque no está en descarga libre
Responder Con Cita
  #5  
Antiguo 19-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Está en la web de embarcadero (codecentral) para descargar, aquí.
Responder Con Cita
  #6  
Antiguo 19-04-2019
Javierus Javierus is offline
Miembro
 
Registrado: jun 2017
Posts: 88
Poder: 7
Javierus Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Está en la web de embarcadero (codecentral) para descargar, aquí.
Gracias, Casimiro, pero no sirve: se trata de Community Edition, así que me dice que no puedo descargar eso con mi usuario
Responder Con Cita
  #7  
Antiguo 20-04-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
...
De la pestaña Interbase (son los componentes IBX) he añadido un ibdatabase, un ibtransaction y un ibTable.
Casimiro, entonces eso es lo que me falló en su día. La persona que me hizo la migración de mis componentes a SQL y que según sus palabras era "el que más sabía de delphi de España" no conocía o no cayó en usar estos componentes y usó unos que no servían y cuando le comenté el problema que había con tablas de muchos registros me dijo textualmente "no hay milagros". Unos cuantos de miles de euros y unos cuantos meses de trabajo tirados a la basura.

De una forma o de otra estoy bastante contento con ElevateDB, hay alguna cosa que creo que con Firebird no podría hacer y que me resulta muy cómoda como el poder usar la base de datos embebida para entornos pequeños de red.

En fin..... estas cosas modernas....
__________________
Be water my friend.

Última edición por Casimiro Notevi fecha: 20-04-2019 a las 10:37:15.
Responder Con Cita
  #8  
Antiguo 20-04-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
Casimiro, entonces eso es lo que me falló en su día. La persona que me hizo la migración de mis componentes a SQL y que según sus palabras era "el que más sabía de delphi de España" no conocía o no cayó en usar estos componentes y usó unos que no servían y cuando le comenté el problema que había con tablas de muchos registros me dijo textualmente "no hay milagros". Unos cuantos de miles de euros y unos cuantos meses de trabajo tirados a la basura.

De una forma o de otra estoy bastante contento con ElevateDB, hay alguna cosa que creo que con Firebird no podría hacer y que me resulta muy cómoda como el poder usar la base de datos embebida para entornos pequeños de red.

En fin..... estas cosas modernas....
El problema es que "la informática" es un campo tan amplio que no se puede saber todo, algo que nos parece casi imposible resulta que alguien conoce la forma de hacerlo incluso fácil.
El "truco" con el componente Table es tener indexado el campo que se va a usar, y no olvidar traer solo los registros que se necesiten, aunque esto último también vale para cualquier consulta, sea del tipo que sea.

Firebird también va perfecto para entornos pequeños de red, e incluso tiene una versión "embebida" para sistemas locales.

Aparte de eso, elevateDB también está muy bien, es muy completo.
Responder Con Cita
  #9  
Antiguo 24-04-2019
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Otra opción es MYSQL o MariaDB (gratuitos) con MYDAC https://www.devart.com/mydac/ de pago, que trae todos los componentes equivalentes de la paleta BDE, yo lo he hecho y funciona perfectamente, naturalmente hay que retocar el codigo pero sin demasiadas complicaciones. Eso si, si abres una tabla de un millon de registros los lleva todos a memoria, pero creo que es asi con cualquier componente que funcione como el TTable.
Devart tambien ha desarrollado https://www.devart.com/dac.html para multiples BD, pero estos no lo he probado.
Responder Con Cita
  #10  
Antiguo 28-04-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 281
Poder: 8
manelb Va por buen camino
Saludos a todos…

En nuestro caso, una de las aplicaciones todavía la tenemos en paradox + BDE y desarrollo en Delphi 2006.

Hemos hecho pruebas instalando el BDE en Delphi 10.2CE para valorar una posible migración en dos fases: primero Delphi i luego BD.

En principio no hemos tenido ningún problema, sólo un comportamiento extraño con el uso de los “Alias” creados en el BDE.

-El caso es que en algunos ordenadores, al ejecutar el programa nuevo creado en D10 no reconoce los alias que están creados de forma persistente con el BDEAdministrator, pero en cambio funciona perfectamente si hay una instancia abierta del programa antiguo creado en D2006 en el mismo ordenador.
-En otros casos, si hay una instancia abierta en el mismo ordenador del programa antiguo D2006 no se ejecuta el nuevo D10, y se debe cerrar el programa D2006 para ejecutar el D10.
-Y en otros ordenadores pueden funcionar los dos programas D2006 y D2010 sin ninguna restricción.

No hemos podido detectar relación casusa efecto entre los ordenadores afectados para sacar conclusiones.

La solución que parece funcionar es crear el Alias al entrar en el programa si no se reconoce.

Alguien más ha tenido este comportamiento extraño??


Saludos

Última edición por manelb fecha: 28-04-2019 a las 08:07:16.
Responder Con Cita
  #11  
Antiguo 09-05-2019
Javierus Javierus is offline
Miembro
 
Registrado: jun 2017
Posts: 88
Poder: 7
Javierus Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
En principio no hemos tenido ningún problema, sólo un comportamiento extraño con el uso de los “Alias” creados en el BDE.
Estoy exactamente en la misma situación que tú: preparando la migración de 2007 a D10, sobre una CE con BDE, para migrar primero el entorno y luego la BD, aunque quizás lo haga al revés, dependiendo de la BD y componentes que elija. Me estoy planteando ElevateDB, porque me la han recomendado por el rendimiento del componente tipo TTable que tiene

En cuanto al BDE, yo en ejecución no utilizo alias persistentes, así que no te puedo decir. ¿Podría tener que ver con la VirtualDataStore de Windows?
Responder Con Cita
  #12  
Antiguo 09-05-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 281
Poder: 8
manelb Va por buen camino
Saludos Javierus...

Cita:
Empezado por Javierus Ver Mensaje
En cuanto al BDE, yo en ejecución no utilizo alias persistentes, así que no te puedo decir. ¿Podría tener que ver con la VirtualDataStore de Windows?
La verdad es que nunca había oído este concepto : VirtualDataStore de Windows.

Voy a investigar a ver que encuentro...

Gracias por el comentario.
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
Delphi Community Edition WHILENOTEOF Noticias 92 26-03-2024 17:31:02
Delphi Community Edition Bootcamp WHILENOTEOF Noticias 4 31-08-2018 22:22:16
Resurgimiento Delphi (Community) Componentes brakaman Varios 2 23-07-2018 19:43:59
Consulta sobre Delphi XE10 o Delphi 10 Seattle Edition rmendoza83 Varios 1 11-12-2016 06:44:14
Delphi 7 second edition Willo Varios 6 22-05-2007 00:55:24


La franja horaria es GMT +2. Ahora son las 19:11:45.


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