首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

ADO + Access 實作區域網路聊天室:無 Socket 的資料庫輪詢架構

     編輯:關於VC++

構想起源

早期接觸程式設計時嘗試:純資料庫輪詢替代 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、清理資源

關鍵程式碼片段

ADO 初始化

// 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;
}

部署注意事項

  • VC6.0 僅支援舊版 Access 格式,共享 .mdb 需設為 Access 97/2000 相容格式
  • 資料夾需設定 讀寫權限 供所有用戶存取
  • 測試環境:Windows XP + VC6.0

執行畫面

聊天室主視窗

選擇資料庫

登入畫面

聊天中

原始碼下載

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

本文配套源碼

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved