以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 关联表的关联列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3267)
|
-- 作者:woodiy
-- 发布时间:2009/6/24 10:20:00
-- 关联表的关联列
A表与B表相关联,为了多用户同时操作,我的方法是:
用A表的ID列------SQL数据库中的自增列 INT 整数型 与B表的RID-------int 整理型 相关联
请问这样合理吗?为什么总出错!
我现在发现问题了,因为我用的方式是SQL数据库动态加载,我在A表中新增加记录时,还没有加载A表数据,所以新增记录的ID为0, 有什么办法解决,谢谢!
[此贴子已经被作者于2009-6-24 10:24:39编辑过]
|
-- 作者:yangming
-- 发布时间:2009/6/24 10:25:00
--
应该没问题的,报错是什么?
|
-- 作者:狐狸爸爸
-- 发布时间:2009/6/24 10:33:00
--
我在A表中新增加记录时,还没有加载A表数据,所以新增记录的ID为0
这是什么意思? 自动增量应该不存在这个问题啊,即使新增为0,保存的时候,也能生成正确的ID
|
-- 作者:blackzhu
-- 发布时间:2009/6/24 11:20:00
--
以下是引用狐狸爸爸在2009-6-24 10:33:00的发言: 我在A表中新增加记录时,还没有加载A表数据,所以新增记录的ID为0
这是什么意思? 自动增量应该不存在这个问题啊,即使新增为0,保存的时候,也能生成正确的ID
对啊!
|
-- 作者:woodiy
-- 发布时间:2009/6/24 14:21:00
--
举例说明一下: 我[出库主表] 以“ID”为SQL数据表主键字段
此主题相关图片如下:1111.gif
为了实现动态加载,在项目BeforeLoadOuterTable中代码如下: If e.DataTableName = "出库主表" AndAlso e.User.Name = "开发者" Then e.SelectString = "Select * From [出库主表] Where ID=\'0\'" End If If e.DataTableName = "出库明细" AndAlso e.User.Name = "开发者" Then e.SelectString = "Select * From [出库明细] Where ID=\'0\'" End If
现在问题是如果没有加载数量,直接通过按键的chick代码: Tables("出库主表").AddNew() Forms("出库主表加").Open() 新增记录时,ID为0,而不是原来最大值加1,如下图:
此主题相关图片如下:22222.gif
问题是如何让ID在没有加载全部数据的时候,新增记录时,也能在原来最大值的基本上加1?
|
-- 作者:yangming
-- 发布时间:2009/6/24 15:34:00
--
你不加载数据库,如果新增记录并加1啊?
|
-- 作者:狐狸爸爸
-- 发布时间:2009/6/24 15:34:00
--
你不用担心的,虽然新增的是0,但是你保存一下,就不是0了,自动在原来的最大值加1,就象你希望的那样。
|
-- 作者:woodiy
-- 发布时间:2009/6/24 20:57:00
--
不行啊,我用此ID列与B表的RID相关联, 在B表中增加关联记录的时间, RID就是"0",所以保存时就会出错啊.
|
-- 作者:狐狸爸爸
-- 发布时间:2009/6/24 21:00:00
--
设置关联的时候,选择选项“自动更新关联列内容”
|
-- 作者:woodiy
-- 发布时间:2009/7/11 11:49:00
--
好的,谢谢!
|