[發明專利]一種對多行數值列存儲成一行的方法無效
| 申請號: | 200910018623.0 | 申請日: | 2009-09-07 |
| 公開(公告)號: | CN101645076A | 公開(公告)日: | 2010-02-10 |
| 發明(設計)人: | 王波 | 申請(專利權)人: | 浪潮集團山東通用軟件有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 250014山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 行數 存儲 一行 方法 | ||
技術領域
本發明涉及一種計算機應用技術,是一種數據存儲類程序技術,可以提高計算機應用程序的檢索效率、減少數據庫占用空間。
背景技術
通常我們在設計有關有序數值列的數據結構時,是將字段定義為數值型,例如Numeric,按行存儲數據,在數據庫中表現為一行一行的多條記錄。
但是這樣會在數據庫中形成大量的數據行,影響查詢效率,且占用較大存儲空間。
發明內容
本發明的目的就是解決現有技術存在不足,提供一種可以實現多行數值列存儲成一行方法,提高查詢效率、減少數據庫存儲空間。
本發明的目的是按以下方式實現的:將存儲數值列的字段數據結構定義為varchar或text非數值型類型,然后通過程序解析為用“-”和“,”連接數值的表意串存儲在數據庫中。
本發明具有功能和有益效果
多行數值合并為一行;
提高檢索效率;
減少數據存儲空間。
使應用程序顯示數據時更直觀,一目了然。
附圖說明
圖1是連續的數值,轉換示意圖;
圖2是不連續的數值,轉換示意圖。
具體實施方式
參照附圖對本發明的方法做以下詳細的說明
將有序數值列按照一定的規則解析為表意數值串,例如有10個連續的數值,從1到10,則解析后的表意串為1-10;當然也可以是不連續的數值串,如從1到5,再從9到13,這時表意串則為1-5,9-13。即“-”代表連續的數值;“,”代表不連續的數值。在數據庫中存儲解析后的表意串。
實施例
本發明所述方法適用于多行數值列存儲為一行記錄的存儲技術。例如制藥行業中對藥品批號的箱號管理,制藥廠為防止串貨、批號跟蹤等管理,通常需要對一批生產的藥品進行箱號管理,一般一個批號下的箱號為連續的數值,1、2、3等有序數值。這就需要建立表來存儲這些箱號信息,現在多數軟件都是按照形如圖1中左側的樣式按行進行存儲,這中方式會在數據庫中形成多行記錄,占用空間較大,在就是查詢效率會很受影響,且給用戶的界面顯示不直觀。本發明就是借用數據庫豐富的字段類型定義,將圖1中左側的多行數值存儲為右側的一行。
以下為詳細的實施說明:
A)將存儲數值列的字段數據結構定義為非數值型,例如varchar或text類型,這是關鍵
B)然后通過程序解析為用“-”和“,”連接數值的表意串存儲在數據庫中。
將多行數值表生成解析為一行表意串:主要程序組件如下:
????String?vsstr,vsstr2
Long?vlrow1,vlrow2,vlrow,vli,vlj,vlnum,vljh1,vljh2,vlm,vln
Long?vlrowcount
vlrowcount=dw_1.RowCount()
IF?vlrowcount=1?THEN
??????vljh1=dw_1.GetItemNumber(1,″f_wcjh″)
??????mle_1.Text=String(vljh1)
??????RETURN?1
END?IF
FOR?vli=1?TO?vlrowcount
???vljh1=dw_1.GetItemNumber(vli,″f_wcjh″)
???vln=0
???vlm=vli+1
???FOR?vlj=vlm?TO?vlrowcount
??????vln=vln+1
??????vljh2=dw_1.GetItemNumber(vlj,″f_wcjh″)
??????IF?vljh2<>(vljh1+vln)AND?vln>1?THEN//處理開始是連續號的情況
??????????vsstr=vsstr+String(vljh1)+’-’+String(vljh1+vln-1)+’,’
??????????GOTO?a??????????????????????????????????//跳出循環再次開始
??????ELSEIF?vljh2<>(vljh1+vln)AND?vln=1?THEN//處理開始是斷號的情況
??????????vsstr=vsstr+String(vljh1)+,’
??????????GOTO?a
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮集團山東通用軟件有限公司,未經浪潮集團山東通用軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910018623.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶有監視功能的攝像筆
- 下一篇:一種磁釘座





