Ĺadny brzuch
Witam ponownie :)
Na szczęście zbliżam się już do końca projektu :) Został mi (mam przynajmniej taką nadzieję ;p) ostatni problem. Otóż gdy wyświetlam zawartość jakiejś tabeli ( obecnie 5 k rekordów) pobranie i wyświetlenie wszystkich elementów zajmuje około 10 sekund, ma ktoś pomysł sposób jak to w jakimś stopniu przyśpieszyć ?
Fragment kodu:
q1.SQL.Text := 'select * from lend,item,customer where lend.id_customer = customer.id_customer and lend.id_item = item.id_item and descl = ''lend'' and lend.exe_return_date < '''+data+''' order by lend.lend_date'; q1.Active:=true; ListView1.Items.Clear; q1.First; while not q1.eof do begin lista:=ListView1.Items.Add; lista.Caption:=q1.FieldByName('id_lend').AsString; lista.SubItems.Add(q1.FieldByName('id_customer').AsString); lista.SubItems.Add(q1.FieldByName('namec').AsString); lista.SubItems.Add(q1.FieldByName('surenamec').AsString); lista.SubItems.Add(q1.FieldByName('id_item').AsString); lista.SubItems.Add(q1.FieldByName('namei').AsString); lista.SubItems.Add(q1.FieldByName('lend_date').AsString); lista.SubItems.Add(q1.FieldByName('return_date').AsString); q1.Next; end; q1.Active:=false;
q1.SQL.Text := 'select * from lend,item,customer where lend.id_customer = customer.id_customer and lend.id_item = item.id_item and descl = ''lend'' and lend.exe_return_date < '''+data+''' order by lend.lend_date'; q1.Active:=true; ListView1.Items.BeginUpdate; ListView1.Items.Clear; q1.First; while not q1.eof do begin lista:=ListView1.Items.Add; lista.Caption:=q1.FieldByName('id_lend').AsString; lista.SubItems.Add(q1.FieldByName('id_customer').AsString); lista.SubItems.Add(q1.FieldByName('namec').AsString); lista.SubItems.Add(q1.FieldByName('surenamec').AsString); lista.SubItems.Add(q1.FieldByName('id_item').AsString); lista.SubItems.Add(q1.FieldByName('namei').AsString); lista.SubItems.Add(q1.FieldByName('lend_date').AsString); lista.SubItems.Add(q1.FieldByName('return_date').AsString); q1.Next; end; ListView1.Items.EndUpdate; q1.Active:=false;
innego sposobu nie znam
.
Użytkownik Przemko2000 edytował ten post 19 styczeń 2010, 13:52
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Na szczęście zbliżam się już do końca projektu :) Został mi (mam przynajmniej taką nadzieję ;p) ostatni problem. Otóż gdy wyświetlam zawartość jakiejś tabeli ( obecnie 5 k rekordów) pobranie i wyświetlenie wszystkich elementów zajmuje około 10 sekund, ma ktoś pomysł sposób jak to w jakimś stopniu przyśpieszyć ?
Fragment kodu:
q1.SQL.Text := 'select * from lend,item,customer where lend.id_customer = customer.id_customer and lend.id_item = item.id_item and descl = ''lend'' and lend.exe_return_date < '''+data+''' order by lend.lend_date'; q1.Active:=true; ListView1.Items.Clear; q1.First; while not q1.eof do begin lista:=ListView1.Items.Add; lista.Caption:=q1.FieldByName('id_lend').AsString; lista.SubItems.Add(q1.FieldByName('id_customer').AsString); lista.SubItems.Add(q1.FieldByName('namec').AsString); lista.SubItems.Add(q1.FieldByName('surenamec').AsString); lista.SubItems.Add(q1.FieldByName('id_item').AsString); lista.SubItems.Add(q1.FieldByName('namei').AsString); lista.SubItems.Add(q1.FieldByName('lend_date').AsString); lista.SubItems.Add(q1.FieldByName('return_date').AsString); q1.Next; end; q1.Active:=false;
q1.SQL.Text := 'select * from lend,item,customer where lend.id_customer = customer.id_customer and lend.id_item = item.id_item and descl = ''lend'' and lend.exe_return_date < '''+data+''' order by lend.lend_date'; q1.Active:=true; ListView1.Items.BeginUpdate; ListView1.Items.Clear; q1.First; while not q1.eof do begin lista:=ListView1.Items.Add; lista.Caption:=q1.FieldByName('id_lend').AsString; lista.SubItems.Add(q1.FieldByName('id_customer').AsString); lista.SubItems.Add(q1.FieldByName('namec').AsString); lista.SubItems.Add(q1.FieldByName('surenamec').AsString); lista.SubItems.Add(q1.FieldByName('id_item').AsString); lista.SubItems.Add(q1.FieldByName('namei').AsString); lista.SubItems.Add(q1.FieldByName('lend_date').AsString); lista.SubItems.Add(q1.FieldByName('return_date').AsString); q1.Next; end; ListView1.Items.EndUpdate; q1.Active:=false;
innego sposobu nie znam
.
Użytkownik Przemko2000 edytował ten post 19 styczeń 2010, 13:52