几个问题供你参考
1、ls_lb_bh = "bm " 这种赋值方法没见过,不知道你这个是不是从数据窗口取数,如果是,这种方法不对,或者是我OUT了。你查查这个数据能不能正常取出
2、你通过select count方法检查是否有重复,这是对的,不过应该在NEW分支里面来做,不然其他类别不需要也运行一次,没意义
3、你的dw提交好像有问题,很复杂的用rowscopy方法,实际上应该用SQL语句处理更直观
没看到你的界面,原则上新增和修改不应该共用一个界面,这样分开处理程序简单清晰
第一种方法,可以插入之前先做判断,比如你要判断重复的字段是ID,那就在查询之前查看表中是否有这个ID存在。可以用如下两种SELECT来判断,个人偏爱第二种,如果表大的话,效率要高。1. SELECT COUNT(1) INTO :Ll_cnt from table where id = :ll_idif li_cnt >0 then 有重复
2. select 'x' into :ls_flag from table where id = :ll_id
if ls_flag = 'x' then 有重复
第二种方法,可以在保存的时候,根据sqlca.sqlerrtext来判断,不过这个判断重复,只能判断主键或者唯一索引的重复,是数据库本身的报错信息。而不是认为来定义判断条件判断的
比如您执行了保存或插入 *** 作之后,下边写
if sqlca.sqlcode = 0 then //这个是保存成功了
commit
else
messagebox("插入错误", "错误信息为:"+string(sqlca.sqlerrtext)) ---这个是数据库本身报出的错误
rollback
end if
在SQL企业管理器里,右击你要清空的数据库,选择所有任务下的生成SQL脚本打开后,点全部显示按钮
然后再点左边的编写全部对象脚本,打上勾
然后点确定
出现提示保存对话框,保存一下
然后找开查询分析器,连接到你的清空的数据库
然后将刚才保存的SQL脚本里的所有内容复制到查询分析器中
按F5执和即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)