影響clientdataset處理速度的乙個因素
tclientdataset是delphi開發資料庫時乙個非常好的控制項。有很強大的功能。
我常常用clientdataset做memorydataset來使用。還可以將clientdataset的資料儲存為xml
,這樣就可以做簡單的本地資料庫使用。還有很多功能就不多說了。在使用clientdataset的
過程中關於怎樣提高處理速度這個問題,我就我個人的一點點體會和大家分享一下。
2.finding 尋找資料
最老,但是最快的查詢方式。
使用findkey/findnearest來查詢一條或多條符合條件的資料,當然待查詢的field必須是一
個indexfield。可以看出,這種基於index的查詢速度是非常快的。
procedure tform1.findkeybtnclick(sender:
tobject);
begin
start;
if clientdataset1.findkey([searchtext]) then
begin
done;
statusbar1.panels[3].text := searchtext +
' found at record ' +
inttostr(clientdataset1.recno);
endelse
begin
done;
statusbar1.panels[3].text :=
searchtext + ' not found';
end;
end;
procedure tform1.findnearestbtnclick(sender: tobject);
begin
start;
clientdataset1.findnearest([searchtext]);
done;
statusbar1.panels[3].text := 'the nearest match to ' +
searchtext + ' found at record ' +
inttostr(clientdataset1.recno);
end3.going 定位
gotokey/gotonearest 與findkey/findnearest基本上沒有什麼區別。它也是基於index的查
找。唯一的區別就是在於你是怎麼定義你的查詢了。**上也有區別:
clientdataset1.setkey;
clientdataset1.fieldbyname(indexfieldname).value := searchtext;
clientdataset1.gotokey;
就相當於
clientdataset1.findkey([searchtext]);
要用好這兩種基於index的查詢,還需要了解clientdataset和index機制。這裡就不詳細說明
index機制。乙個基本的原則,要有index,才能查詢。
4.locating 查詢資料
2,3兩種查詢方式都是基於index的,但是在實際應用中,可能會查詢indexfield以外的fiel
d。那我們就可以使用locate。但是查詢速度是沒有2,3兩種快的。比如:如果你查詢一條紀
錄9000/10000,locate需要500ms,scanning需要》2s,findkey只要10ms(但是當你開啟cli
entdata的時候,建立index需要1s)。
procedure tform1.locatebtnclick(sender:
tobject);
begin
start;
if clientdataset1.locate('field1,field2..',vararrayof['value1,value2..'], ) then
begin
done;
statusbar1.panels[3].text :=
'match located at record ' +
inttostr(clientdataset1.recno);
endelse
begin
done;
statusbar1.panels[3].text := 'no match located';
end;
end;
ClientDataSet使用心得和技巧
clientdataset使用心得和技巧 影響clientdataset處理速度的乙個因素 tclientdataset是delphi開發資料庫時乙個非常好的控制項。有很強大的功能。我常常用clientdataset做memorydataset來使用。還可以將clientdataset的資料儲存為x...
ClientDataSet使用心得和技巧
影響clientdataset處理速度的乙個因素 tclientdataset是delphi開發資料庫時乙個非常好的控制項。有很強大的功能。我常常用clientdataset做memorydataset來使用。還可以將clientdataset的資料儲存為xml,這樣就可以做簡單的本地資料庫使用。還...
使用GraphEdit使用
1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....