就是从表在插入记录时,怎么编号ID,在Delphi中表格显示的ID,没有跟SQL SERVER 中一样,所以更新数据会出错,但如果用requery刷新,表格显示的ID将是正确的

解决方案 »

  1.   

    主表
    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]
    GO
      

  2.   

    从表
    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]
      

  3.   

    从表 [ID] [int] IDENTITY (1, 1) NOT NULL ,插入记录时ID生成的编号在delphi界面显示的跟SQL server 不一样,
    要用requery才能正确显示
      

  4.   

    每一次插入后一般都要requery一下的阿,
    (还是我没看懂你的意思)
      

  5.   

    re licexie这样每次requery应该是可以,但会造成网络负载问题
      

  6.   

    re zsy_good在从表添加记录之前,我已经添加主表记录,并且requery一次
      

  7.   

    我已经重新修改从有结构,关键字为 [MainID],[patternID]REATE TABLE [dbo].[r_mx_in_detail] (
    [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]
      

  8.   

    我一般是这样处理的:
    用SQL语句添加
    一般从表的添加有可能取消
    所以先把从表的MainId设置为-1(或你高兴的)当然只是你刚添加进去的记录
    在从表确定的时候取得主表的ID,然后更改从表的
    要取消的话,你可以随时删除啊,想来就不用说了吧?
    主表的ID当然是自动编号了
      

  9.   

    “花格”呀,到这边提问了,我也在研究主、从表操作。用ADO。http://www.csdn.net/expert/topic/809/809323.xml?temp=.1446039