博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何利用Datawindow.net提取Sequence数据
阅读量:4073 次
发布时间:2019-05-25

本文共 1000 字,大约阅读时间需要 3 分钟。

为了实现数据的统一管理,防止出现唯一号重复的情况,我个人认为最有效的方法莫过于使用Sequence(我使用的是Oracle),为了实现自动增长还可以创建一个触发器,让触发器自动取出Sequence的Nextval填入Id中.这个时候,数据窗口可以不提取主键字段,直接更新就可以生成数据,参考触发器如下:

CREATE OR REPLACE TRIGGER SUMMARY_LIST_BIR

BEFORE INSERT
ON SUMMARY_LIST
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
when (NEW.SUMMARY_LIST IS NULL)
BEGIN
   select SEQ_SUMMARY_LIST.nextVal INTO :NEW.SUMMARY_LIST from dual;
END;

 

注:这个触发器是在ID为空的情况下才触发.

 

但是,可能有这样一种情况,那就是比如部门和人员是1对多的情况,如果要同时增加部门和人员的情况是,由于开始还没有生成部门编号,这样人员自然就没有办法直接对找到部门中去,常规的办法可以用ADO.net通过SQL语句提取数据,但是那样比较麻烦,我们现在用了Datawindow的情况下能不能使用数据窗口来提取呢?

答案是肯定的,事实上也非常简单,你可以创建一个数据窗口,然后通过语法的方式写入查询语句,如:

select seq_summary_list.nextval from dual

然后保存该数据窗口,提取数据的时候怎么提取呢?

可以使用Datastore,例子代码如下:

        //提取编号
        Sybase.DataWindow.DataStore ds_seq = new Sybase.DataWindow.DataStore();
        ds_seq.LibraryList = Server.MapPath("../..") + @"/pbl/summary.pbl";
        ds_seq.DataWindowObject = "d_work_summary_seq_nextval";
        ds_seq.SetTransaction(trans.SQLCA);
        ds_seq.Retrieve();

        int iSummaryID = (int)ds_seq.GetItemDecimal(1, 1);

转载地址:http://ywwni.baihongyu.com/

你可能感兴趣的文章
Unity 2019 LTS正式推出
查看>>
关于UE4使用中虚幻商城保管库的目录问题
查看>>
Unity3D 2018版本 Post Process 后期处理插件使用介绍
查看>>
UE4户外森林场景全流程教学
查看>>
零基础入门Unity - 古迹探险(Unity2017)
查看>>
C#批量修改文件后缀名
查看>>
Unity3D普通开发人员,U3D主程分别需要掌握的技能
查看>>
关于XMLList = node["节点1"]["节点2"]中只有1个节点的问题
查看>>
readUnsignedInt () 自动移动字节流位置,和.net是一样的
查看>>
大型应用程序中的资源destory办法
查看>>
action,webaction,mode,controller
查看>>
多个单例模式单例模式的应用
查看>>
北山白云里,隐者自怡悦。
查看>>
mouseChildren= false
查看>>
12个Flex常用功能代码
查看>>
addChild一个.swf时,该swf的背景色失效,同时如有超出大小的范围,也会显示,造成边距...
查看>>
MovieClip,Sprite,Shape三者之间的区别
查看>>
欣赏ActionScript 3 的元件架构
查看>>
在as3中只有事件(或该事件的子级)的发送者才能侦听事件
查看>>
rotation的单位是角度
查看>>