早期接觸程式設計時嘗試:純資料庫輪詢替代 Socket 實作區域網路聊天室。雖效能與即時性不及 Socket,但作為「拋磚引玉」與 ADO 實戰練習極具教學價值。
Access 資料庫 chat.mdb 兩張資料表:
content (name Text, time DateTime, content Memo)
online (name Text)
| 模組 | 職責 |
|---|---|
| 登入模組 | 選擇共享資料庫路徑、輸入使用者名稱、寫入 online 表 |
| 重繪模組 | Timer 定時輪詢:• SELECT * FROM online 更新線上名單• SELECT * FROM content ORDER BY time 更新訊息區• 新訊息播放提示音 |
| 應用模組 | 發送訊息 → INSERT INTO content;離線 → DELETE FROM online、清理資源 |
// stdafx.h
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace rename("EOF", "adoEOF")
// App 初始化
AfxOleInit();
HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chat.mdb", "", "", adModeUnknown);
// 記錄上次筆數,若筆數增加則播放聲音
long currCount = pRecordset->GetRecordCount();
if (currCount > m_lastCount) {
PlaySound("notify.wav", NULL, SND_ASYNC | SND_FILENAME);
m_lastCount = currCount;
}




完整專案含詳細註解。適合理解 ADO 基礎操作、資料庫共享機制與輪詢架構的初學者參考。