856

Intrebare Delphi

Am o baza de date in MS Acces cu citeva tabele:Oras cu cimpurile [ID],[Nume],[Contor] Problema cu cimpurile [ID],[Nume]Baza cu cimpurile [ID],[Data],[ID_Oras],[ID_Prob]In Tabelul ORAS sunt enumerate toate orasele RM, in tabelul PROBLEMA deasemena sunt enumerate problemele care pot exista in orase, iar in tabelul BAZA :in cimpul [Data] se iscrie data\timp cind se creaza inregistrarea in cimpul [ID_Oras] se inscrie [ID] din tabelul ORASin cimpul [ID_Prob] se inscrie [ID] din tabelul PROBELEMAProblema care mi s-a pus era sa construiesc o diagrama cu toate orasele si numarul total de probleme pe oras.Eu am facut asa: In tabelul ORAS in cimpul [Contor] inscriu numarul total de probleme. Apoi unui DBChart ii indic ca DataSource Tabelul ORASProcedure Build_Graph;Var a,cont:Integer;beginForm1.ProgressBar1.Max:=DataModul.ADO_ORAS.RecordCount;Form1.ProgressBar1.Position:=0;DataModul.ADO_ORAS.First;TryWhile Not DataModul.ADO_ORAS.Eof do begin a:=DataModul.ADO_ORAS.FieldValues['ID']; DataModul.ADOSQL_Grafic.SQL.Clear; DataModul.ADOSQL_Grafic.SQL.Add('Select * from baza where ID_ORAS='+IntToStr(a)); DataModul.ADOSQL_Grafic.Open; cont:=DataModul.ADOSQL_Grafic.RecordCount; DataModul.ADO_ORAS.Edit; DataModul.ADO_ORAS.FieldValues['Contor']:=cont; DataModul.ADO_ORAS.Post; Form1.ProgressBar1.Position:= Form1.ProgressBar1.Position+1; Application.ProcessMessages; DataModul.ADO_ORAS.Next; end; {While}F_Grafic.DBChart1.Series[0].DataSource:=DataModul.ADO_ORAS;F_Grafic.ShowModal;exceptShowMessage('Eroare la constructia diagramei');end; {Try}end;Totul lucreaza bine, dar mi se pare ca cam incet , pentru 65 de inregistrari in tabelul ORAS si 500 in tabelul Baza dureaza cam 7 secunde. Dar ma gindesc cit o sa dureze cind in Baza voi avea 2000 de inregistrari si mai mult.Tabelele ORAS si PROBLEMA nu au legaturi cu Tabelul Baza, le folosesc ca clasificatoare.Deoarece sun cam incepator in programare intrebarea mea este:cum ati rezolva voi aceasta problema ?Astept parerile si solutiile voastre.
0