|
楼主 |
发表于 2020-5-28 19:00:01
|
显示全部楼层
这是EJB里的那个修改函数:
public void updateTransinfo2(String substaid, String lineid, String transid,
BigDecimal voltagein, Timestamp usedate,
String transname, String copyerid,
Integer transtypeid, Integer usetype,
Integer transcapa, Integer booknum,
String transaddr, String producecompany,
String producecode, Timestamp producedate,
Integer nousedays, Integer compoint,
BigDecimal rating) {
TransinfoPK pk = new TransinfoPK(substaid, lineid, transid);
try {
TransinfoRemote ejb = Transinfohome.findByPrimaryKey(pk);
ejb.setVoltagein(voltagein);
ejb.setUsedate(usedate);
ejb.setTransname(transname);
ejb.setCopyerid(copyerid);
ejb.setTranstypeid(transtypeid);
ejb.setUsetype(usetype);
ejb.setTranscapa(transcapa);
ejb.setTransaddr(transaddr);
ejb.setProducecompany(producecompany);
ejb.setProducecode(producecode);
ejb.setProducedate(producedate);
ejb.setNousedays(nousedays);
ejb.setCompoint(compoint);
ejb.setRating(rating);
ejb.setBooknum(booknum);
}
catch (RemoteException ex) {
}
catch (FinderException ex) {
}
}
这是我在JBUILDER里生成的测试端:
public static void main(String[] args) {
dyxxSessTestClient1 client = new dyxxSessTestClient1();
dyxxSess test=client.create();
String substaid="01"; //变电站编号
String lineid="3030"; //线路编号
String transid="005"; //变压器编号
BigDecimal voltagein=new BigDecimal("36.1"); //输入端电压
Timestamp usedate = Timestamp.valueOf("2015-11-11 15:14:18.999999911");//投运日期
String transname="33"; //变压器名称
String copyerid="01"; //抄表员编号
String charcomid="02"; //供电所编号
Integer transtypeid=Integer.valueOf(1); //变压器类型
Integer usetype=Integer.valueOf(0); //专用公用标志
Integer transcapa=Integer.valueOf(33); //固定容量
Integer booknum=Integer.valueOf(33); //表本号
String transaddr="33"; //安装地址
String producecompany="33"; //生产厂家
String producecode="33"; //出厂编号
Timestamp producedate = Timestamp.valueOf("2015-08-08 15:14:18.999999911"); //出厂日期
Integer nousedays=Integer.valueOf(33); //运行天数
Integer compoint=Integer.valueOf(0);
BigDecimal rating=new BigDecimal("0.5555");
// BigDecimal rating=null;
try {
test.updateTransinfo2(
substaid, lineid, transid,
voltagein, usedate,
transname, copyerid, transtypeid,
usetype, transcapa,booknum
, transaddr,
producecompany, producecode,
producedate, nousedays, compoint, rating
);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
当我在EJB 的public void updateTransinfo2(..){..}里 把 ejb.setBooknum(booknum);这句话注释掉以后,运行整个测试端没有问题,其余的字段也能够修改。如果有这句话,在测试端就会报上面的错误。
update transinfo set booknum=999 where substaid='01' and lineid='3030' and transid='001'
这是我在查询分析器里单独更改那个有触发器的字段,触发器是可以正常工作的
还望高手赐教 |
|