[Lazarus-es] problema con lentitud en sistema
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Mie Oct 24 19:05:48 CEST 2012
Hola todos..
necesito me orienten en un problema que tengo.
Tengo un form donde hay una grilla que muestra TODOS los registros de un
TTable (firebird 2.1.4, componentes zeos).
Además hay botones para agregar/eliminar/modificar esos registros.
A ese TTable le hice clic derecho/editar campos y agregué todos los
campos de la tabla y además cree 4 campos lookup para que por ejemplo en
vez de que se vea el código del operario se vea el nombre, etc.
En el grid se visualizan solo el número de registro, la fecha y esos 4
campos lookup.
Como esos 4 campos son claves foráneas de otras tablas, hay índices.
En el evento onTitleClick, se ordenan los datos según la columna clickeada.
Uso este código:
procedure TABMF03.DBGrid1TitleClick(Column: TColumn);
var
temp : ZAbstractRODataset.TSortType;
const
PreviousColumnIndex: integer = 0;
begin
try
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
except
end;
Column.Title.Font.Style:= Column.Title.Font.Style + [fsBold];
PreviousColumnIndex := Column.Index;
temp := dbForm03.SortType;
dbForm03.SortedFields := Column.FieldName;
if temp = stAscending then begin
dbForm03.SortType := stDescending;
DBGrid1.Columns[PreviousColumnIndex].Title.ImageIndex:= 1;
end else begin
dbForm03.SortType := stAscending;
DBGrid1.Columns[PreviousColumnIndex].Title.ImageIndex:= 0;
end;
end;
pero con una simple tabla de 10mil registros, ordenar por esos campos
lookup lo hace MUY LENTO y además, en la mayoría de las veces se cuelga
el sistema.
Otra cosa es que cuando agrego un registro a esa tabla, el guardar tb se
hace mUY lento.. y solo hago 1 insert en esa tabla y hasta 6 inserts más
en otra de detalle
Se que es un disparate mostrar todos los registros de esa tabla.. pero
en un principio es lo que ellos querían.
Se que debería quizás rediseñar ese form para que se muestre solo
determinados registros y quizás eso haga que no se enlentezca al ordenar
por X columna y al grabar.
El concepto es como si fuera un listado de facturas, con posibilidad de
agregar, borrar, eliminar, imprimir las mismas.
Agradezco cualquier idea..
byeeeeeeeee
More information about the Lazarus-es
mailing list