表A: A_ID, A_Name, A_TypeID, A_Memo;
表B: B_TypeID, B_Type, B_Memo;
两表关系:A_TypeID = B_TypeID
DBGrid中挂钩ADOQuery显示了:A_ID, A_Name, b_Type, A_Memo
当我post时,不光存表A,还执行了存表B,因为B_TypeID不能为空,所以导致post总是不能成功
其实我只想存表A,并不想改变表B,应该怎么做?

解决方案 »

  1. 既然不用改变表B,那就只发送A_ID, A_Name, A_Memo这三个就可以了
      

  2. 可否细述?
    看很多人说关联的用lookup字段,应该怎么弄,不清楚
      

  3. 如果要改变表B,就用B_TypeID = A_TypeID,把B_TypeID保存进表B不就行了?提前之前,先把思路理顺了,看自己到底需要什么,否则连自己都不知道在问什么,别人怎么回答?
      

  4. 已经明确说过,不要改变B,B放在这里只是需要关联下在现有的B表中选择对应的类型,充实A的数据而已
      

  5. 组件面板,Data Controls页面上,DBLookupComboBox控件,设置一下datafield、datasource和listsource属性就行了
      

  6. T1:ID    Name  TypeID   ModelID   Memo
       1     AAA   1        3         AAAAAA
       2     BBB   2        1         BBBBBBB
          
    T2:TypeID    Type
       1         hell
       2         eteT3:ModelID   Model
       1         RD
       2         RF
       3         HD
    我要在dbgrid中得到
    ID      Name    Type    Model     Memo
    然后可以通过append语句增加行,然后填数据
    3       CCC     ete     RF        CCCCCCCC
    然后post,存入T1为
    T1:ID    Name  TypeID   ModelID   Memo
       3     CCC   2        2         CCCCCCCC
      

  7. 比较笨的办法,就是以Type在T2表中查到TypeID的数据,以Model在T3表中查到ModelID的数据,然后跟别的数据一起,插入到T1表中。我对主从表不熟,只能用这个方法解决,你要是不嫌麻烦,就这么试一下吧
      

  8. UPDATE 视图了,写语句解决,一次只能UPDATE一个表
        with TempAdo do
        begin
          Close;
          sql.Clear;
          sqlstr :='  Update 表A set'
                  +'    A_ID=123, A_Name=456, A_Memo=789 '' 
                  +'    where A_ID=123_ID=123 '
          SQL.Add(sqlstr);
          ExecSQL;
        end;
      

  9. 费用append啊?写update语句不就行了。
      

类似问题 »