全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1166
推到 Plurk!
推到 Facebook!

Delphi 3.0中連接資料庫的三種方式

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-25 12:07:57 IP:61.221.xxx.xxx 未訂閱
此為轉貼資料 Delphi 3.0中連接資料庫的三種方式 Delphi 3.0 對 訪 問 數 據 庫 提 供 了 強 有 力 的 支 持, 利 用Delphi 3.0 可 以 開 發 出 功 能 強 大 的 數 據 庫 應 用 程 序。 Delphi 的 可 視 化 功 能 相 當 強 大, 制 作 一 個 簡 單 的 僅 對 數 據 進 行 查 看 和 維 護 的 程 序 十 分 容 易, 可 以 不 寫 任 何 代 碼 就 能 實 現 !Delphi 3.0 中 訪 問 數 據 庫 的 方 式 有 三 種: 直 接 訪 問, 如 訪 問Paradox 和DBase 數 據 庫; 通 過ODBC 訪 問, 如 訪 問Access、Foxpro 等 數 據 庫; 通 過 內 嵌(Native) 方 式 訪 問 數 據 庫, 如 訪 問SQL Server、Oracle、DB2 等。 在Delphi 中, 可 以 使 用Table 控 件 或/ 和Query 控 件 來 訪 問 數 據 庫, 二 者 的 設 置 和 用 法 都 差 不 多, 因 此 下 面 僅 以Table 控 件 ? 例 說 明 這 三 種 方 式 的 特 點 和 用 法。 1. 直 接 訪 問 Delphi 可 以 直 接 訪 問Paradox 和DBase 這 兩 個 桌 面 型 的 數 據 庫 系 統。 訪 問 這 兩 種 類 型 的 數 據 庫 時 不 需 要 特 別 的 設 置, 只 需 要 把 文 件 路 徑 賦 給Table 控 件 的 屬 性DatabaseName 就 可 以 訪 問 該 路 徑 下 的 數 據 庫 了。 當 然, 也 可 以 事 先 建 立 映 射 數 據 庫 路 徑 的 數 據 庫 別 名, 然 後 把Table 控 件 的DatabaseName 屬 性 設 置 ? 相 應 的 數 據 庫 別 名。 2. 通 過ODBC 訪 問 訪 問Paradox 和DBase 以 外 的 數 據 庫, 通 常 是 通 過ODBC 來 實 現 的。Delphi 可 以 訪 問 支 持ODBC 的 數 據 庫 系 統, 如Access、SQL Server 和Oracle 等。 當 然, 通 過ODBC 訪 問 數 據 庫 時, 首 先 要 使 用Windows 的 控 制 面 板 或Delphi 的 數 據 庫 引 擎(BDE) 建 立ODBC 數 據 源。 Delphi 提 供 了TDatabase 控 件, 該 控 件 的 作 用 有: 在 應 用 程 序 的 控 制 下 和 數 據 庫 系 統 建 立 連 接、 進 行 事 務 處 理 等。 在 數 據 庫 應 用 程 序 中, 可 以 使 用Database 控 件, 也 可 以 不 使 用。 如 果 不 使 用Database 控 件, 可 以 直 接 把ODBC 數 據 源 的 名 稱 賦 給Table 控 件 的 屬 性DatabaseName 而 達 到 訪 問 該 數 據 庫 的 目 的。 這 種 方 式 的 弊 端 是 在 程 序 運 行 時 由Delphi 系 統 自 動 彈 出 登 錄 到 數 據 庫 的 英 文 界 面 的 窗 口, 既 不 美 觀 又 不 便 於 控 制。 因 此, 筆 者 建 議 在 數 據 庫 應 用 程 序 中 使 用Database 控 件 來 登 錄 到 數 據 庫 系 統。 把Table 控 件 與Database 控 件 關 聯 的 方 法 是 把 其DatabaseName 屬 性 值 指 定 ?Database 控 件 的DatabaseName 屬 性 值。 一 個Database 控 件 可 以 管 理 若 幹 個Table 控 件。 和Database 控 件 建 立 關 聯 以 後, 只 要 該Database 控 件 已 經 和 數 據 庫 建 立 了 連 接,Table 控 件 就 可 以 直 接 訪 問 數 據 庫 而 無 須 再 次 登 錄。 3. 通 過 內 嵌 方 式 訪 問 elphi 中 可 以 不 通 過ODBC, 而 以 內 嵌 方 式 訪 問SQL Server、Oracle、DB2 等 數 據 庫 系 統。 這 需 要 使 用 數 據 庫 別 名 來 指 定 數 據 庫, 數 據 庫 別 名 可 以 事 先 建 立, 也 可 以 在 程 序 運 行 時 動 態 創 建。 前 者 稱 ? 靜 態 別 名, 後 者 稱 ? 動 態 別 名。 使 用 數 據 庫 別 名 來 訪 問 數 據 庫 的 方 法 和 使 用ODBC 數 據 源 的 情 形 相 同, 這 裏 不 再 累 述。 通 過 內 嵌 方 式 訪 問 數 據 庫 的 靜 態 別 名 必 須 在BDE 中 建 立。 以 訪 問SQL Server 數 據 庫 ? 例, 在 建 立 別 名 時 必 須 指 定 數 據 庫 服 務 器 的 名 稱(SERVER NAME)、 主 機 名(HOST NAME) 以 及 要 訪 問 的 數 據 庫 名 稱(DATABASE NAME), 可 以 指 定 登 錄 用 戶 名(USER NAME) 和 口 令(PASSWORD) 等。 通 過 動 態 創 建 的 別 名 來 訪 問 數 據 庫 必 須 使 用Database 控 件。 如 何 設 置Database 控 件 中 訪 問 數 據 庫 的 參 數 呢 ? 用 鼠 標 雙 擊Database 控 件, 出 現 參 數 設 置 窗 口, 在"Driver name" 一 欄 選 擇 要 訪 問 的 數 據 庫 系 統, 如"MSSQL", 然 後 選 擇 按 鈕"Defaults", 就 會 把BDE 中 該 數 據 庫 系 統 所 需 的 參 數 名 稱 和 缺 省 值 加 入 到"Parameter overrides" 列 表 中。 根 據 實 際 情 況 更 改 參 數 中 的"SERVER NAME"、"DATABASE NAME" 等 項。 然 後 選 擇 按 鈕"OK" 就 可 以 了。 需 要 說 明 的 兩 點 是, 以 內 嵌 方 式 訪 問 數 據 庫 需 要 在 安 裝Delphil 3.0 時 指 定 安 裝SQL Link;Query 控 件 的SQL 語 句 不 能 以 分 號 結 尾。 結 論 通 過 內 嵌 方 式 訪 問 數 據 庫 與 通 過ODBC 訪 問 數 據 庫 相 比, 前 者 的 速 度 要 快 一 些。 而 且, 內 嵌 方 式 可 以 在 程 序 中 動 態 地 設 置 連 接 數 據 庫 所 需 的 參 數, 用 戶 不 必 設 置ODBC 數 據 源, 這 就 降 低 了 對 用 戶 技 術 水 平 的 要 求, 並 且 減 少 了 用 戶 的 工 作 量。 從 系 統 配 置 的 難 易 和 複 雜 程 度 來 看, 使 用 內 嵌 方 式 開 發 出 的 數 據 庫 應 用 系 統 更 便 於 普 通 用 戶 使 用。 因 此, 筆 者 建 議 在 開 發 較 大 型 的 應 用 系 統 時, 最 好 通 過 內 嵌 方 式 來 訪 問 數 據 庫。 發表人 - jackkcg 於 2002/10/25 12:10:35
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-05-16 9:26:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!