我需要一些幫助,因爲我看不出做一些搜索之後的任何解決方案...列表框從數據庫中添加項目和排序+刪除重複
我有一個數據庫Database.mdb,其中有幾個表,我正在閱讀具體的表夾具,其中有字段ID,通道號,默認和製造商;
然後我有一個表單,我希望用戶能夠從每個燈具中進行選擇,但希望先由製造商對其進行分類。 所以,我說ListBox組件在窗體上,並開始使用所提供的代碼,它填充:
procedure TPatchNew1.FormShow(Sender: TObject);
var No, No2: integer;
begin
No2:=0;
AdoQuerySearchFixtures.SQL.Text:='SELECT Manufacturer FROM Fixtures';
AdoQuerySearchFixtures.Open;
ManuNo:=AdoQuerySearchFixtures.RecordCount;
While No2 < No do
begin
ManufacturerListbox.Items.Add;
AdoQuerySearchFixtures.Close;
AdoQuerySearchFixtures.SQL.Clear;
AdoQuerySearchFixtures.SQL.Text:='SELECT Manufacturer FROM Fixtures WHERE ID='+IntToStr(No2+1);
AdoQuerySearchFixtures.Open;
ManufacturerListbox.Items[No2].Caption:=AdoQuerySearchFixtures.Fields[0].AsString;
No2:=No2+1;
end;
end;
這是卓有成效的,但我想它想先:合併所有重複,使燈具與相同的製造商字段值都顯示只有單擊列表框項目後(我相信我可以做到這一點,將SQL文本更改爲「WHERE製造商=東西」),但沒有100個項目在列表框中,如果我有90個來自同一製造商的固定裝置; 最後,在列表框填充之前,我希望按字母順序排序,從A到Z. 我應該首先閱讀所有制造商以對記錄或數組進行排序,然後查找重複項並將其刪除,然後對其進行排序它,最後填寫列表框項目,還是有任何其他方式? 就是這樣,怎麼做?我放棄了這個整天之後.. :(
感謝。
乾杯
打開查詢統計記錄,然後分別查詢每一個項目?排序和分組可以很容易地由數據庫查詢本身完成。所以開始在數據庫教程上工作第一個 –
你沒有任何具體的問題,你是在徵求建議,所以我認爲這是一個糟糕的問題。正如Rufo提到的那樣,你可以用SQL來完成它(但你至少需要學習SQL的基本知識),或者預先加載所有數據並在內存中執行你想要的操作(例如在數組中)。 –
對不起,遲到了,因爲假期... [聖誕快樂到所有bdw]。 恩,我確實檢查了很多關於數據庫查詢的內容,但是從來沒有想過在查詢本身中看到任何類似的內容。但是,這不會使查詢變得非常繁忙和緩慢嗎?我的意思是,我將擁有一個包含多個表格的數據庫,我基本上都在閱讀和寫作。一個表每0.5秒寫入一次,每0.5秒讀出2個表,所有行值,所以我想把排序和其他工作掛到程序本身上......這不是一個好主意嗎? –