關於SQL Server 2000資料庫的問題,有源碼 |
缺席
|
jean2004
初階會員 發表:69 回覆:80 積分:39 註冊:2004-12-18 發送簡訊給我 |
關於SQL Server 2000資料庫的問題,有源碼 各位大蝦,我有一個SQL Server 2000的資料庫,裏面有一個iList的表,表裏有20多萬條記錄,表結構如圖,由於檔有很多重複,因此我根據檔大小組織排序後將有這樣大小檔的人員加到檔夾的圖示下面(如圖示),可是我的代碼操作一次要一個多小時的時間,完全沒有使用價值,不知道我要如何修改才能實現快速添加?我的代碼如下:
void __fastcall TForm1::Button5Click(TObject *Sender)
{
TreeView1->Items->Clear();//清空TreeView控制項
TreeView1->Images = ImageList1;//指定TreeView控制項的圖示來源 ADOConnection4->Connected=true;//打開連接 ADODataSet4->Close();
//ADODataSet4->CommandText="SELECT DISTINCT temp03 FROM iList;";
ADODataSet4->CommandText="SELECT temp03, COUNT(temp03) FROM iList GROUP BY temp03 ORDER BY COUNT(temp03) DESC;";//文件大小
ADODataSet4->Open();
ADODataSet4->First();//將指針設置到首條
if(!ADODataSet4->Eof)
{
TTreeNodes *Nodes,*Nodes1;//,*Nodes2;
Nodes = TreeView1->Items;
//Nodes1 = TreeView1->Items;
TTreeNode *bootNode = new TTreeNode(Nodes);
TTreeNode *bootNode1 = new TTreeNode(Nodes1);
//TTreeNode *bootNode2 = new TTreeNode(Nodes2);
while(!ADODataSet4->Eof)
{
Application->ProcessMessages();//在長時間迴圈中回應消息
bootNode = Nodes->Add(bootNode, ADODataSet4->FieldByName("temp03")->AsString);
bootNode->ImageIndex = 0;//指定根節點的靜態圖示,如果圖示不存在就不顯示圖示
bootNode->SelectedIndex = 1;//指定根節點的點擊圖示,如果圖示不存在就不顯示圖示 ADODataSet5->Close();
ADODataSet5->CommandText="SELECT DISTINCT temp01 FROM iList WHERE temp03='"+ADODataSet4->FieldByName("temp03")->AsString+"';";
ADODataSet5->Open();
if(!ADODataSet5->Eof)
{
ADODataSet5->First();
while(!ADODataSet5->Eof)
{
bootNode1 = TreeView1->Items->AddChild(bootNode,ADODataSet5->FieldByName("temp01")->AsString);
bootNode1->ImageIndex = 2;//指定第三節點的靜態圖示,如果圖示不存在就不顯示圖示
bootNode1->SelectedIndex = 3;//指定第三節點的點擊圖示,如果圖示不存在就不顯示圖示 ADODataSet5->Next();
}
} ADODataSet4->Next();
}
}
ADOConnection4->Connected=false;//關閉打開的資料庫
}
圖一:
圖二:
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |