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

循序漸進學習 PowerBuilder 6.0(2-7):應用程式執行實戰演示 — 登入、資料瀏覽、CRUD 操作

     編輯:關於SqlServer

一、執行前準備:儲存與編譯

  1. File → Save All (或工具列儲存圖示)
  2. 關閉所有 Painter 視窗
  3. PowerBar → Run (執行圖示) 或 Ctrl+R

二、登入視窗 (w_login) 互動流程

畫面元素

  • 標題:「個人通訊錄管理系統」
  • 單行編輯框 (`sle_1`):密碼輸入,`Password` 屬性 = True (顯示 `*`)
  • 命令按鈕 (`cb_ok`):`Default` = True (Enter 鍵觸發)

驗證邏輯 (Click 事件腳本)

IF Upper(Trim(sle_1.Text)) = "MYPASSWORD" THEN
    Open(w_main)      -- 開啟主視窗
    Close(w_login)    -- 關閉登入視窗
ELSE
    sle_1.SetFocus()  -- 密碼錯誤,焦點回編輯框
END IF

**安全性提示**:實際專案應使用加密儲存/比對、參數化查詢、嘗試次數限制、帳號鎖定機制。

三、主視窗 (w_main) 介面佈局

左側:DataWindow 控制項 `dw_list` (Grid 樣式)

  • 顯示通訊錄所有記錄關鍵欄位:編號、姓名、電話
  • `VScrollBar` = True:大量資料捲動
  • 綁定 DataWindow Object `d_list` (SQL Select 模式)

右側:DataWindow 控制項 `dw_detail` (Freeform 樣式)

  • 顯示所選記錄完整欄位:地址、郵遞區號、單位、狀態
  • 綁定 DataWindow Object `d_detail` (含檢索參數 `number_search`)
  • 預設空白,待左側選中記錄後 `Retrieve` 填充

底部四個命令按鈕

按鈕名稱標籤功能
`cb_insert`插入`dw_detail.Reset()` + `dw_detail.InsertRow(0)` 新增空白列
`cb_delete`刪除`dw_detail.DeleteRow(0)` 刪除當前列 (尚未資料庫)
`cb_update`更新`dw_detail.Update()` → 成功 `COMMIT` + `dw_list.Retrieve()` 同步;失敗 `ROLLBACK`
`cb_close`關閉`Close(Parent)` 關閉主視窗,結束應用程式

四、核心互動腳本解析

1. 視窗 Open 事件:初始化資料連線與列表載入

CONNECT;                          -- 使用 SQLCA 連線資料庫
dw_list.SetTransObject(SQLCA);    -- 綁定交易物件
dw_list.Retrieve();               -- 執行關聯 SQL 查詢,填充列表
dw_detail.SetTransObject(SQLCA);  -- 詳細視窗同樣綁定

2. `dw_list` Clicked 事件:主從聯動核心

INTEGER li_row, li_number
li_row = dw_list.GetClickedRow()  -- 取得點擊列號 (0=非資料區)

IF li_row = 0 THEN
    MessageBox("提示", "請點選有效記錄列")
ELSE
    li_number = dw_list.GetItemNumber(li_row, 1)  -- 取得第 1 欄 (編號)
    dw_detail.Retrieve(li_number)                 -- 以編號為參數檢索詳細資料
END IF

3. 更新按鈕 Click 事件:交易控制標準模式

IF dw_detail.Update() = 1 THEN
    COMMIT;                 -- 提交交易
    dw_list.Retrieve();     -- 重新載入列表保持一致
ELSE
    ROLLBACK;               -- 回滾,資料庫恢復原狀
END IF

五、完整操作演示流程

  1. 啟動應用程式 → 彈出登入視窗
  2. 輸入密碼 `MYPASSWORD` → Enter → 進入主視窗
  3. 左側列表顯示所有通訊錄記錄
  4. 點選任一記錄 → 右側顯示完整詳細資料
  5. 點選非資料區 (標題列) → 彈出自訂對話框「非有效記錄列」
  6. 按「插入」 → 右側出現空白記錄 → 填寫資料 → 按「更新」 → 新記錄寫入資料庫,左側列表同步新增
  7. 點選左側新記錄 → 按「刪除」 → 右側記錄移除 → 按「更新」 → 資料庫刪除,左側列表同步移除
  8. 按「關閉」 → 應用程式結束,回到 PB 開發環境

六、關鍵技術點總結

  • DataWindow 控制項 vs DataWindow 物件:控制項是視窗上的容器,物件是邏輯定義 (SQL、版面、樣式)
  • SetTransObject**:將交易物件指派給控制項,建立資料庫連線上下文
  • Retrieve/Update**:DataWindow 核心方法,封裝 SELECT/INSERT/UPDATE/DELETE
  • GetClickedRow/GetItemNumber**:從 Grid 取得使用者互動資訊
  • 交易控制**:`CONNECT`/`COMMIT`/`ROLLBACK` 配合 `AutoCommit=False`

下一節 (2-6) 將詳細講解應用程式腳本編寫全過程:Application Open、登入視窗按鈕、主視窗初始化、主從聯動、四大 CRUD 按鈕、關閉邏輯。

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