一個好用的DBGRID

來源:互聯網
上載者:User

CGridCtrl_demo19_01.zip為示範CGridCtrl的使用

CGridCtrl_demo19_02.zip示範與CMYODBC的配合使用

一、引言

在用vc開發關於資料庫的項目時,通常我們只好用微軟的DBGRID作為資料庫表格控制項,其實微軟的DBGRID並不好用,想找一份好的協助文檔都找不到,並且介面並不友好,比起C++Builder中的DBGRID來說是遜色不少,但是DBGRID在開發資料庫的項目中又是常用的控制項,所以就一直想找一個好用的DBGRID,可是網上又沒有找到。上次在無意中看到了CGridCtrl(一個很漂亮的表格控制項,如果你還沒有用過,可以到http://www.codetools.com/miscctrl/gridctrl.asp/下載,上面還有詳細的使用說明)支援虛模式,在這種模式下,即使你向這個表格插入一百萬條資料,它並不會真的產生一百萬行,而是隨著你的捲軸的滾動,計算出在螢幕上要顯示的行和列,然後會向你提供一個介面,通過這個介面,你可以在這兒設定你要顯示的資料。這給了我一些啟示,我決定用它來做一個DBGRID。下面的例子是它的一個應用。

二、原理

DBGRID和一般的GRID的不同之處在於,一般的GRID並不適合顯示大的資料量,如果你的一個查詢結果有上萬條記錄的話,如果你都要插入到GRID中,這將是一個很慢的過程,並且你在GRID中移動捲軸的話,它的記錄的滾動也是很慢的,而DBGRID並不會真正把這些記錄的資料全部插入到控制項中,當DBGRID的捲軸滾動時,它會根據DBGRID的顯示面積的大小和查詢得到的總的記錄數計算出當前應該顯示哪那些行,然後會把那幾行的記錄資料插入到表格中,這樣速度當然是很快的,而且沒有資料量多少的限制。

幸運的是,CGridCtrl類已經為我們提供了這種機制,它是採用虛模式的方式,要使用這種方式,按照以下的步驟就可以了:

步驟一 初始化

void SetVirtualMode(TRUE) 設為虛模式
BOOL SetRowCount(int nRows) 設定總的行數。
BOOL SetFixedRowCount(int nFixedRows = 1)設定固定的行資料
BOOL SetColumnCount(int nCols)  設定列數
BOOL SetFixedColumnCount(int nFixedCols = 1)設定固定的列數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.