delphibs資料庫
① delphi中BDE如何連接資料庫
要這樣使用BDE的原生資料庫連接,你需要打開BDE
Administrator工具,在configuration頁里的Native節點上把DB2資料庫服務有關的參數進行設置,然後保存就可以了,在BDE
Administrator
面板把數據相關的內容設置好後,就可以用BDE組件進行連接
② delphi 做資料庫的幾個簡單入門小問題
我做過兩年,不過只用過ADO,DBE什麼的沒有用過。
一帆燃般就是拖一個ADOConnection控制項,然後用ADOQuery,ADOStoreProc等;一般態沒虛連接控制項單獨做在一個模察桐塊里共用。
③ Delphi資料庫有哪些
paradox是表,Database Desktop是Delphi 7 提供的一個使用非常方便的資料庫工具,可以生成資料庫表、重建資料庫表的結構和查詢資料庫等操作。
④ Delphi深度探索之使用Bold開發資料庫應用(1)
介紹
下面我要介紹的Bold for Delphi就是是一套優秀的基於UML模型驅動的面向對象的資料庫開發框架 包括了幾十個組件組件 以及 個以上的類 可以用來輕松地實現信息模型設計及基於信息模型的的應用程序
基礎概念介紹
為了使大家對Bold for Delphi整個框架的使用有一個大概的了解 下面將演示如何用UML設計一個簡單的模型並用Bold來完成 並包括如何用Bold快速實現一個簡單的操作界面
自打我和我老婆認識以後 就染上了她的臭毛病 比較喜歡亂花錢 沒有節制 結果搞的自己常常是掙的不如花的多 老要借外債 後來痛定思痛 決定要對每月收支情況做預算 嚴格控制費用支出 為此寫了還寫了好多的財務小程序 下面要講的這個例子程序就是一個常見的家庭小賬本程序 它可以用來統計家庭中的收支情況 軟體的功能要求如下
可以定義家庭中的各個人員的信息 可以輸入收支情況 並同消費的人員關聯起來 給出一定時期內消費的情況統計 作為未來家庭預算的依據
建立信息模型
在產品的需求分析階段 我們首先要建立資料庫程序的信息模型 一般來說信息模型主要是指基於ER圖的實體關系模型 這是因為我們使用的資料庫大部分都是關系型資料庫 雖然有些資料庫 比如Oracle有面向對象的特性 但不是很完善 一般很少使用 而關系型資料庫有一個很大的問題就是無法直觀的體現面向對象的思想 關系型的ER模型能夠清晰地描述業務域的靜態的數據視圖 但你無法從模型獲取實體的操作及其相互之間的交互 同時 也很難在關系型資料庫中簡單地實現繼承 重載 多態等等面向對象的技術 因此現代資料庫開發方法所提倡的面向對象的編程思想無法簡單 清晰 平滑地映射為關系型資料庫中的表結構
統一建模語言(UML)是一種以可視化的方式建立軟體系統框架 並進行文檔化的語言 UML語言是對當今軟體工程領域成熟設計實踐的一個總結 並且已經被實踐證明是可以成功地描述大型的復雜系統的 目前國內很多的大型公司已經開始在軟體開發過程中使用UML作為一種標準的信肆春息模型設計語言了 Bold for Delphi就是基於UML的 它內置了一套自己的UML建模工具 當然我們也可以使用Rose或者ModelMaker來進行UML設計
面向對象的UML類圖則可以說是對ER模型的一個擴展 它對實體之間的關系以及相互之間的作用也進行了描述 ER模型只是對要進行保存的數據進行的模型化 而類圖則包括了全部的類實體的屬性以及它們的操作和相互作用 它可以使我們對業務域問題有一個更精確的視圖 通過使用各種類圖技術可以更容易地 也更快速地建立正確的軟體系統
基於Bold for Delphi的資料庫開發革命性的一點就是允許我們直接把基於UML的類圖映射為關系型資料庫的存儲 而無須手工的通過代碼進行轉換 要注意一點的是 Bold同其它建模工具如Together ModelMaker不同 它生成框架代碼時只使用了UML中的類圖 而Together等可以利用UML圖中的類圖 協作圖等其它UML元素來生成代碼框架 但是Together不負責生成對象模型對應的關系資料庫模型
類模型
下面的這個類圖就是我們的賬本程序的一個簡單類圖
圖中顯示了兩個類 人員信息類 Person 以及賬目信息類AcctItem 人員類和賬目類之間的連線描述了兩個類之間的關系 關系包括一個標題PayAssoc揭示了兩者之間的關系是支付的關系 每個屬性 PayPerson 和 Pay 以及關系多重度因子 和 n 表明每個人可以完成多個賬目的收支 而每個賬目至少要有一個關聯的人員 同時或雹拿類圖還描述了下面一些業務規則衫搭
一個人的信息要有名稱 賬目信息中包含收支金額大小 以及發生日期
上面的類圖如果使用關系型資料庫來實現的話 需要建立主從表 並將人員和賬目之間的關聯約束通過應用程序代碼強制一些運行邏輯來完成 這時通常要通過補充詳細的文檔來描述需要強制的業務邏輯 如果沒有詳細的設計文檔 實現代碼時就很容易遺漏某些重要的商業規則 同時這些文檔在整個的資料庫開發的生命周期裡面都需要人來手工地維護 難免會出現文檔和模型不匹配的錯誤 而且文檔的工作量比較大 而程序員數量又相對不足的話 程序員會覺得既要寫代碼又要寫文檔 無形中增加了很多工作量 難免會有抵觸情緒 這些都會影響工作的效率
對於這樣的問題 Bold則通過精確描述信息模型 無須詳細規則描述文檔可以將模型自動的轉變為實現代碼 商業規則在整個資料庫開發生命周期內由Bold的類來維護 減少了文檔的工作量和出錯的可能
建立示常式序
首先 我們要安裝Bold for Delphi Bold的一個月評估版可以從 boldsoft 獲取 同時D 的架構版內置了Bold 這里我就不詳細介紹申請和安裝的過程了 安裝好後Bold會在IDE的組件面板中添加很多組件 接下來我們就開始建立使用Bold的Delphi程序了
在Delphi中選File|New Application創建一個新的應用程序
保存窗體文件為MainForm pas保存工程文件為CMoney dpr
添加一個數據模塊 設定數據模塊的名字為DmMoney
將數據模塊保存為CDataMole pas
為了使用Bold來建立系統的信息模型 要進行下列操作
從Bold Handles 組件頁上選擇BoldModal(命名為bmMoney) BoldSystemTypeInfoHandle(命名為bsthMoney)和BoldSystemHandle(命名為bshMoney)到數據模塊中
設定bsthMoney的BoldModal屬性為bmMoney
設定bshMoney的BoldSystemTypeInfoHandle 屬性為bsthMoney
其中BoldModel組件將被用來保存模型 即類 類的關系 約束以及類型等 這些信息將在設計時作為字元串保存到Delphi的窗體和數據模塊文件中 在運行時Bold將執行一些模型的中間轉換過程 將模型轉化為BoldSystemTypeInfoHandle控制項所使用的格式 並選擇實現可持續性的機制
在設計時儲存在BoldModel組件中的信息模型可以被看做元數據 就象資料庫的庫表和欄位結構一樣的信息 而BoldSystemTypeInfoHandle組件則保存BoldSystemHandle所需要的運行時信息 這些信息是對UML模型的一種運行時的表達 這個組件是其他Bold組件的信息源 BoldSystemHandle組件則被用來表達整個系統的業務域元素 可以理解為對象空間 通過對象空間我們可以在運行時獲得設計時元數據表達的對象的運行實例 目前用到的三個控制項已經可以很好的應用在不需要保存數據的環境中了 但賬目記錄這類資料庫程序必須要保存用戶輸入的信息 因此還需要添加支持數據可持久性的控制項 這里為了快速演示的需要 我們使用XML文件作為存儲介質 接下來要添加XML可持續控制項到數據模塊中
從Bold Persistence組件頁上選擇BoldPersistenceHandleFileXML控制項(命名為bphxMoeny)添加到數據模塊中
設定組件的BoldModel屬性為bmMoney控制項
設定bshMoney組件的PersistenceHandle屬性為bphxMoeny組件
現在組件關系示意圖如下
BoldPersistenceHandleFileXML組件將使我們的程序可以使用XML文件來保存和讀取對象 這是一個使用很方便的控制項 特別是在快速原型設計期間 因為在原型設計期間 模型經常會被改動 而重新生成資料庫表是很費時間的 而XML文件可以使我們非常快的變更我們的模型設計 當模型基本穩定後 可以去掉這個控制項 轉而切換為其他使用關系型資料庫進行存儲的可持續性控制項 這樣的開發方式可以使我們不需要改動整個程序就能很容易地改變數據持續層的存儲策略 也就是前面所說的 資料庫平台無關設計
除了前面的一些基本的屬性設置外 我們還要設定下列控制項屬性
組件 屬性 值 說明 bsthMoney UseGeneratedCode false 是否使用bold生成類代碼 這里暫時先不使用 稍後我們會進一步介紹 bphxMoeny FileName Data xml 指定保存數據的xml文件名 bshMoney AutoActivate true 告訴Bold控制項在程序運行後馬上打開xml文件用於數據存儲建立模型 下面的步驟是建立我們的模型 Bold for Delphi內置了一個樹形的UML建模工具(應該說Bold美中不足的一點就是沒有提供象Visio和Rose那樣基於拖放的模型設計界面) 我們可以雙擊BoldModel(bmMoney)組件調出模型設計工具 bold UML模型編輯器(見下圖)包含了應用程序模型信息 數據類型信息和關系資料庫映射信息
模型編輯器支持下列實體類型
Model: 模型 全部業務域實體集合
Package: 包 整個模型的一個子集所包含的實體 可以將大模型分解為小模型來減少系統復雜度
Class:類 類似於Delphi的類的概念(Delphi的類可以從UML的類來生成) 但包含Object Pascal無法直接描述的類的信息和相互關系 Bold框架通過關聯類和特殊的列表類封裝了一些額外的功能使得我們可以很容易的處理復雜的類關系
Attribute: 屬性 類似於Delphi中的property概念 然而在Bold中 這些屬性可以在模型中直接保存而無需我們編寫屬性的Get Set方法
Operation: 操作 等價於Delphi中的類的過程和函數
Association: 關聯 代表了類之間的關系 關聯可以使用類來表達 關聯也可以有操作和屬性 在Bold中建立關聯的復雜工作同樣可以由框架來實現 我們無須編寫代碼來完成
Role: 角色 代表關聯同類的連接
Data Type: 表示模型所支持的不同數據類型 它可以被擴展以支持用戶自定義的數據類型
下圖是不同實體類型在模型編輯器中是如何標識的
所有的實體類型都可以通過編輯器的右鍵菜單來創建和修改屬性 同時我們選中實體節點後 實體和全局的選項會顯示在右側的編輯器中 其中重要的有
Name: 模型的名稱
lishixin/Article/program/Delphi/201311/24785
⑤ delphi能否做bs結構的軟體
可以的,只是相對於一些流行的bs開發技術(java,.net,php),delphi開發bs不太主流。delphi開發bs有幾種方式,delphi自帶枝渣的有WebSnap或vcl for web(intraweb)可以開發bs,WebSnap比較難用,而且資料很少,vcl for web稍好點。此外,還有一些第三方的框架可以派頌開發bs,比如ungui是個很有趣的東西猛羨悄,可以這里看它的在線demo:http://prime.fmsoft.net/demo/ucdemo.dll