在 Delphi 2009 中開發資料庫應用程式時,選擇合適的資料存取元件至關重要。雖然 ADO (dbGo) 是常見選擇,但對 MySQL 的支援並不理想。本文將示範如何使用 dbExpress 元件連接 MySQL 資料庫,並建立一個簡單的登入頁面。
首先建立一個資料模組,這將集中管理資料庫連接元件。

為了使用 dbExpress 存取 MySQL,必須將 MySQL 安裝目錄下 bin 資料夾中的 libmySQL.dll 複製到 Delphi 安裝目錄的 bin 資料夾中。這是 dbExpress 驅動程式正常運作的必要條件。
在資料模組上放置一個 TSQLConnection 元件,並進行以下關鍵設定:
MySQLFalse,避免每次連線都彈出認證對話框建立一個新表單作為登入頁面,建議設定以下屬性以提升使用者體驗:
BorderStyle := bsDialog:固定對話框樣式Position := poDesktopCenter:螢幕置中顯示
表單上放置兩個 TEdit (帳號、密碼)、兩個 TButton (登入、取消) 以及一個 TSQLQuery 元件用於執行查詢。
核心邏輯在「登入」按鈕的 OnClick 事件中:
procedure TFrmLogin.Button1Click(Sender: TObject);
var
username, password: string;
recordcount: Integer;
begin
username := Edit1.Text;
password := Edit2.Text;
// 輸入驗證
if username = '' then
begin
ShowMessage('請輸入使用者名稱!');
Edit1.SetFocus;
Exit;
end;
if password = '' then
begin
ShowMessage('請輸入密碼!');
Edit2.SetFocus;
Exit;
end;
// 執行查詢
LoginSQLQuery.SQLConnection := DataModule1.MySQLConnection;
LoginSQLQuery.CommandText := 'SELECT * FROM T_USR WHERE USID = ' + QuotedStr(username) + ' AND PWD = ' + QuotedStr(password);
LoginSQLQuery.Open;
recordcount := LoginSQLQuery.RecordCount;
if recordcount < 1 then
ShowMessage('使用者名稱或密碼錯誤!')
else
ShowMessage('登入成功!');
end;
安全性提醒:實際專案中應使用參數化查詢 (Params) 避免 SQL 注入風險,並對密碼進行雜湊處理而非明文儲存。
procedure TFrmLogin.Button2Click(Sender: TObject);
begin
Close;
end;
透過 dbExpress 元件,Delphi 2009 可以高效、穩定地連接 MySQL 資料庫。本範例展示了從資料模組建立、驅動程式部署、連線設定到登入邏輯實作的完整流程,為資料庫應用程式開發奠定基礎。