急,主从表操作中,从表新加记录有错误
我的操作环境:win2000,delphi6,sqlserver 2000
主表:ID,date,hz,zb (ID为关键字,怎么编号
从表:ID,MainID,num,patternID (ID为从表关键字段并自动编号 ,MainID与主表链接)
在从表插入记录时,有的记录ID没有跟SQL SERVER中的ID相同,要刷新requery才能与主表相同,在没有刷新的情况如果从表修改数据就会发生错误
表
CREATE TABLE [dbo].[r_mx_in_main] (
[date] [datetime] NULL ,
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[billNo] [char] (16) COLLATE Chinese_PRC_CI_AS NULL ,
[zb] [nvarchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[sh] [nvarchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[hz] [nvarchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[cd] [nvarchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[memo] [ntext] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
从表
CREATE TABLE [dbo].[r_mx_in_detail] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[MainID] [int] NOT NULL ,
[patternID] [int] NOT NULL ,
[num] [int] NOT NULL ,
[memo] [ntext] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
举个例子
从表在一次插入记录实例
ID MainID PatternID Num memo
230 25 11 25
231 25 12 5
245 25 15 1000
233 25 16 23
有没有发现第三条记录,ID为245,实际是232,在SQL server 中是232
所以要执行requery 才能找回正确的ID232,否则此时修改那条记录将会出错
问题点数:100、回复次数:7Top
1 楼luoweicaisd(笑三少)回复于 2002-06-14 09:16:39 得分 0
CREATE TABLE [dbo].[r_mx_in_detail] (
[ID] [int] IDENTITY (1, 1) NOT NULL , //把IDENTITY (1, 1)去掉
[MainID] [int] NOT NULL ,
[patternID] [int] NOT NULL ,
[num] [int] NOT NULL ,
[memo] [ntext] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Top
2 楼whme()回复于 2002-06-14 09:21:39 得分 0
去掉可以找到办法解决这个问题,我想知道为什么会这样,还有我不想改表的结构,Top
3 楼luoweicaisd(笑三少)回复于 2002-06-14 09:41:37 得分 100
IDENTITY是自动增加值字段时才用的,从表不应有自动增加自段Top
4 楼luoweicaisd(笑三少)回复于 2002-06-14 09:44:58 得分 0
应该说是从表的ID应从主表中取得不应是自动增加Top
5 楼whme()回复于 2002-06-14 09:47:06 得分 0
那从表表要怎么设计比较合理,好象从表要设置关键字段才可以修改数据Top
6 楼whme()回复于 2002-06-14 09:48:39 得分 0
MAINID是从主表取得Top
7 楼luoweicaisd(笑三少)回复于 2002-06-14 09:53:42 得分 0
当然,当保存数据时你就要从主表中取出数据到从表的相应字段才保存啊Top




