利用游标实现体检人员检查检验数据的更新

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:p6688718
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】:在SQLSERVER数据库中,当需要对某一单位体检人员结果集中的记录逐一地读取并完成更新检查检验数据时,使用select语句完成十分困难,而游标则提供了完成对一个结果集进行逐行处理的能力。
  【关键词】SELECT;CURSOR游标 ;结果集;体检;检查检验
  一、问题提出
  我院的体检系统由于上线时间较早,体检人员的体检结果导出功能方面功能不足,因此当有些查体单位需要我们提供该单位所有人员的检查、检验等数据时,导致这些数据往往无法直接提供或提供这些数据十分麻烦。
  二、解决思路
  由于我院体检人员的检查、检验数据在数据库中是一个项目名称对应一个结果并以一条记录形式存储的,而体检单位要求在一张电子表格中要包含所有体检人员的所有的检查、检验项目结果,于是在编写存储过程中,当检索、更新的数据是一条记录时,使用select 、update语句可以实现,但是现在需要从体检人员结果集中逐一地读取一条记录并更新,那么使用select语句完成十分困难。通过分析研究,发现利用游标可以方便实现。
  什么游标(CURSOR)?其作用是什么?
  游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。我们知道关系数据库管理系统实质是面向集合的,在SQLSERVER中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中,因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力。
  每一个游标必须有四个组成部分,这四个部分必须符合下面的顺序:①DECLARE 游标②OPEN 游标③FETCH 信息④CLOSE 或DEALLOCATE 游标。
  三、具体实现步骤:
  1、生成一个包含体检人员的基本信息字段和所有检查、检验项目字段的空数据表。
  体检人员的基本信息字段包括如体检编号、姓名、性别,体检时间等;检查项目字段分别包括检查部位和检查结果,如放射、超声、心电图等;检验项目字段包括总胆红素、直接胆红素、间接胆红素等57个项目。
   由于每个检查、检验项目在数据库是以一个项目名称对应一个结果并以一条记录的形式保存,因此为生成所有项目字段,首先通过select语句检索出所有项目名称记录并保存到excel中,利用excel的转置功能生成包含所有字段空表,再将该表导入到数据库中,最后生成空的、完整的数据表。
  2、将体检人员基本信息插入到dyjj_jcjy中。
  insert into dyjj_jcjy(tjbh,ryxh,hzxm,sex,kstjsj)
  select a.tjbh,a.xh ’ryxh’,b.hzxm,b.sex,substring(a.kstjsj,1,8)
  from TJ_TJRYK a,SF_BRXXK b
  WHERE a.tdxh=’2623’and a.tjbh=b.blhand a.jlzt=3
  order by tjbh
  3、通过jc_up_cursor游标将检查结果插入(通过逐条取’ryxh’结果集来更新对应数据)
  DECLARE @ryxh ut_xh12
  DECLARE jc_up_cursor CURSOR FOR
  SELECT ryxh FROM dyjj_jcjy
  ORDER BY tjbh
  OPEN jc_up_cursor
  FETCH NEXT FROM jc_up_cursor into @ryxh
  WHILE @@FETCH_STATUS = 0
  BEGIN
  ---心电图
  update dyjj_jcjy set xdtjcbw=-----部位
  (select top 1 xmjg from SF_JCJGK where bgdh=(select bgdh FROM TJ_TJSFMXK where ryxh=@ryxh and bglx=’XDT’)
  and xmdm=’bw’order by xh desc)
  where ryxh=@ryxh
  update dyjj_jcjy set xdtjcsj= -----结果
  (select top 1 xmjg from SF_JCJGK where bgdh=(select bgdh FROM TJ_TJSFMXK where ryxh=@ryxh and bglx=’XDT’)
  and xmdm=’jcjl’order by xh desc)
  where ryxh=@ryxh
  。。。。。。
  FETCH NEXT FROM jc_up_cursor into @ryxh
  END
  CLOSE jc_up_cursor
  DEALLOCATE jc_up_cursor
  GO
  4、通过jy_up_cursor游标将检验结果插入(通过逐条取’ryxh’结果集来更新对应数据)
  DECLARE @ryxh ut_xh12
  DECLARE jy_up_cursor CURSOR FOR
  SELECT ryxh FROM dyjj_jcjy
  ORDER BY tjbh
  OPEN jy_up_cursor
  FETCH NEXT FROM jy_up_cursor into @ryxh
  WHILE @@FETCH_STATUS = 0
  BEGIN
  update dyjj_jcjy set 总胆红素=(select a.xmjg from SF_YJJGK a (nolock),TJ_TJSFMXK b (nolock) ,TJ_TJRYK c(nolock) , TJ_TJTDK d(nolock),YY_SFXXMK e (nolock)wherea.cflb = 3 and a.cfxh = b.xhand b.ryxh = c.xh and c.tdxh = d.xh and b.sf_id = e.idand c.xh = @ryxhand xmmc=’总胆红素’)
  where ryxh=@ryxh
  。。。。。。
   FETCH NEXT FROM jy_up_cursor into @ryxh
  END
  CLOSE jy_up_cursor
  DEALLOCATE jy_up_cursor
  GO
  四、总结
  通过以上解决思路和解决步骤,轻松完成了所有体检人员的检查、检验等数据结果的更新,并顺利导出了整个数据表。当利用简单的select语句等无法处理针对整个结果集较为复杂的业务时,可以考虑使用游标的优势来处理。
  参考文献
  1. 朱 倩,浅析SQL Server2000中游标的使用,福建电脑,2009.3
  2. 姜广坤等,SQL Server 2000 实用教程[M],大连理工大学出版社,2004.8
  [email protected]
  山东省东营市东营区胜利医院信息中心 13561039065
其他文献
摘要:该文阐述了Web Services 基础和SOAP规范,分析了Web Services的安全问题,基于WS-Security实现SOAP签名和加密,保证了Web服务中数据交换安全,确保消息的机密性、完整性和不可否认性。提出采用安全代理的方式处理SOAP安全,使安全与业务处理分开,对用户和开发者透明,易于集成和维护。   关键词:Web Services;SOAP;签名;加密;代理  中图分类
目的探讨右腋下小切口微创手术治疗房间隔缺损(ASD)和室间隔缺损(VSD)的效果。方法选择ASD患者42例、VSD患者26例,均进行右腋下小切口微创手术,记录手术时间、体外循环时间、术后
顾桥矿南区锅炉房设置3台10 ZL10-1.25-AII型组装式蒸汽锅炉。其热工控制选用合肥万邦自动控制工程有限公司的HWB-2002分散型控制系统。针对雷雨天气对电气设备造成的损坏,尤
摘要:在过去的半个多世纪,信息技术的发展,尤其是计算机和互联网技术的进步极大地改变了人们的工作和生活方式。大量企业开始采用以数据中心为运营平台的信息服务模式。进入新世纪后,数据中心变得空前重要和复杂,这对管理工作提出了新的挑战,一系列的问题接踵而来,而云计算正是在这样的背景下应运而生的。  关键词:云;云计算;“云”计算  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012
本文研究了16MnR钢的应变疲劳裂纹扩展特性,用逐级递增位移双引伸计法测定了16MnR钢的应变疲劳裂纹扩展速率,给出了裂纹扩展速率与循环J积分范围△J,循环裂尖张开位移范围△
本文导出NTC热敏电阻无源补偿的中值法计算公式及讨论并联补偿网络最佳工作温区特性。它与目前流行的热敏电阻无源补偿的三点设计方法比较,具有步骤简单,物理意义清晰等优点
目的:观察缺氧缺血性脑损伤( HIBD)新生大鼠脑组织神经细胞凋亡情况及Tau、p-Tau蛋白表达变化。方法70只清洁级7日龄SD大鼠随机分为A组(50只)、B组(10只)、C组(10只),A组大鼠采用经典R
目的观察外源性一氧化氮(NO)对骨折患者血管内皮细胞和血小板功能的影响。方法将100例骨折手术患者随机分为观察组、对照组各50例,术后均予常规抗血栓治疗,观察组另吸入0.001%
为了找出快速、简捷、有效的鉴定老陈醋年份的方法,对72种老陈醋样品采集数据,并采用RBF神经网络来建立分类模型,对测试样本分类验证。结果表明:RBF网络分类正确率为100%,此
本文从铝合金板材深冲制耳的织构关系引出织构分析方法,并在此基础上由单晶的弹性性质计算具有织构的多晶金属板材的弹性各向异性,从而找出一种分析制耳与弹性各向异性之间关