以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- _Identify的疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62335) |
-- 作者:HappyFt -- 发布时间:2014/12/30 9:49:00 -- _Identify的疑问 每个表中都有一个[_identify]列作为自动增长,可以很方便的唯一识别每一行,其他表单跨表更新时也可以引用它,但有个很大的问题就是数据库移动复制到其他项目或地方使用时,新的数据库中的_identify列就变了,其他表中有引用过这个_identify的值的就完全对应不了。 有没有办法在每个表的后台SQL数据保存的时候即生成_identiy的时候自动将这个值赋予每个表中的行号列? 谢谢! |
-- 作者:Bin -- 发布时间:2014/12/30 9:55:00 -- 可以 1.数据库编写触发器,生成_Identify后就为行号列赋值 2.自己编写保存代码 datatables(X).datarows(1).save \'代码执行保存行,保存后会生成_Identify 此时后面接上赋值代码 datatables(X).datarows(1)("行号")=datatables(X).datarows(1)("_IDentify") |
-- 作者:HappyFt -- 发布时间:2014/12/30 20:46:00 -- 谢谢,第2种方式后面接上赋值代码是不是又要再次执行datatables(X).datarows(1).save 保存才可以啊,感觉还是第一种好,但是有个问题,触发器都是针对表触发的,每个表都要在sql的后台数据库中去写,有没有写一个触发器通用于指定数据库中的所有表的啊,或者通用于一批指定的表的? |
-- 作者:有点甜 -- 发布时间:2014/12/30 21:02:00 -- 第二种方法简单方便,原理和触发器一样,没必要写触发器。
在DataRowAdded的时候save一下即可。 |
-- 作者:HappyFt -- 发布时间:2014/12/30 21:35:00 -- 好的,那请教一下foxtable的这种保存机制,如果save的那一瞬间出现断网或其他异常情况导致save这个动作没有成功将数据保存到后台数据库表中,结果会怎么样?或者会返回什么信息 |
-- 作者:有点甜 -- 发布时间:2014/12/30 21:39:00 -- save 断网的话,就直接报错了。 |
-- 作者:有点甜 -- 发布时间:2014/12/30 21:41:00 -- 报:一般网络错误,
你可以在 BeforeShowErrorMessage 事件处理
http://www.foxtable.com/help/topics/2655.htm
|