醫院信息系統數據庫維護工具的開發
何遠源①
①中山市人民醫院計算機管理中心,528403,廣東省中山市孫文東路2 號
摘 要 為了提高醫院信息系統數據庫維護的工作效率,減少對數據庫執行操作時的風險,
開發一個數據庫維護工具,對數據庫表的查詢、新增、刪除、修改操作集中在一個更具體、
直觀的窗體界面上,盡可能避免因sql語句錯誤導致數據破壞。
關鍵詞 數據庫維護 表結構分析 生成 系統關聯
1 前言
根據《中國醫院信息化發展研究報告(白皮書)》,調查發現目前醫院信息
系統建設高速發展背后伴隨的是技術人才短缺,醫院信息系統應用開發自主創新
能力不強,具有自主知識產權產品很少,大部分醫院采用市場提供的信息系統產
品并有系統供應商實施建設工程,醫院自主應用管理與運行維護[1]。作為醫院信
息維護的員工對購買系統的數據庫結構并不完全了解和熟悉,存在人為失誤導致
數據破壞的風險。本系統是一個醫院信息系統數據庫維護工具,通過對數據庫表
結構的分析,把平時書寫的數據庫基本語句轉換為簡單、直觀的窗體界面操作。
2 必要性
日常的數據庫維護,對表進行查詢,增加,修改,刪除是使用最為頻繁的基
本操作,而條件語句在其中最為關鍵,一條查詢語句,條件語句不當可能會導致
查詢出大量非必須的數據,無法得到想要的結果;修改,刪除的條件語句錯誤,
更是可能導致數據的大量修改和破壞,甚至造成無法挽回的失誤。
在使用sql查詢分析器對數據庫表的數據進行增,刪,改操作時,作為數據維
護的工作人員通常都會在不需要執行的sql語句前加入注釋,以防止執行不必要
的sql操作,造成數據丟失或錯誤。但這種方法并不能完全避免人為失誤,特別是
對剛上崗的數據維護人員,其人為失誤可能性更大。而且如果一個表字段較多,
數據維護人員對表字段不熟悉時,手工輸入sql語句也會帶來不少的麻煩。
基于以上情況,開發一個通用的醫院信息系統數據庫維護工具,,使對數據庫
的這些基本操作集中在一個簡單、直觀的窗體界面上,利用該工具對表結構進行
分析,組合成所需要的sql語句來對數據庫表進行操作,可減少不必要的麻煩,方
便維護人員對數據庫的維護.
3 系統設計思路
首先根據用戶指定的服務器讀取服務器的數據庫,進而讀取其中的表,當用
戶選定一個表時,對其表結構進行分析,返回一個列表,列表應包含如字段名,類
型,主鍵,是否允許空等基本元素。然后通過對窗體生成前的一些設置,如每個
對應字段所應生成的控件類型等,系統根據表結構和窗體設置生成一個臨時窗
體,待用戶調整好控件位置后,保存當前窗體的有關設置信息到自定義的文件格
式中,在注冊表寫入系統與自定義文件格式的關聯,待下次用戶打開保存的文件
時就可以直接讀取配置信息構建窗體,還原用戶當時保存的窗體界面。
4 開發環境與開發工具
開發環境: windows操作系統
開發工具:vasual studio 2005 C#語言環境,sql2000數據庫。
5 詳細設計
5.1 分析表結構 首先用戶設置好待連接的服務器,登錄名和密碼,服務器登陸
成功后讀取其數據庫,返回一個列表,用戶選擇了數據庫后再讀取數據庫的表,
當用戶選定一個表時,對其表結構進行分析,查詢表結構的sql語句如下:
StringBuilder sb = new StringBuilder();
sb.Append("SELECT");
sb.Append(" 字段序號=a.colid,");
sb.Append(" 表ID=a.id,");
sb.Append(" 字段名=a.name,");
sb.Append(" 標識=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then
'√'else '' end,");
sb.Append(" 主鍵=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and
parent_obj=a.id and name in (");
sb.Append(" SELECT name FROM sysind |
|