rsDetail.Open "Select T_BConDetail.BCOrderID,T_BConDetail.CargoID,T_CargoInfo.CargoName,T_CargoInfo.Unit,T_BConDetail.Amount,T_BConDetail.sngPrice ,T_BConDetail.Money,T_BConDetail.DisCount,T_BConDetail.RefPrice,T_BConDetail.Description " & _
"From T_BConDetail,T_CargoInfo Where T_BConDetail.CargoID=T_CargoInfo.CargoID And T_BConDetail.BCOrderID='" & Trim(lblOrderID.Caption) & "'", MainClothingCnn, adOpenStatic, adLockBatchOptimistic, adCmdText
比如rsDetail.Addnew后,调用ADO的rsDetail.UpdateBatch更新能否不更新T_CargoInfo基本表?
系统报错为:无法将Null值插入列“CargoID”表“db_Clothing.dbo.T_CargoInfo”该列不允许空值!  多谢!

解决方案 »

  1.   

    你的CargoID在表中设置了不允许null,而你在UpdateBatch中却给CargoID付了空值
    解决办法
    .fields("CargoID").value=值 &""
      

  2.   

    不是,我不希望在T_CargoInfo表中插入记录,我只想在T_BConDetail中插入记录。多谢!
      

  3.   

    但是你更新时已经更新了T_CargoInfo
      

  4.   

    你用关联数据集的rs.addnew,当然会在所有select选定了的表中增加空行。你可以用另一个recordset,比如rs1,只对应T_BConDetail,显示使用rs,addnew使用rs1,保持两个数据集记录的联动就可以了。
      

  5.   

    我是将rsDetail捆绑在TDBGrid上,同Grid输入记录,T_CargoInfo为商品基本表,T_BCondetail为商品合同明细表,两表通过CargoID相连!
      

  6.   

    Jhzyz 你好!,能否再具体一点,或给个列子?多谢!
      

  7.   

    rs的select语句用into生成一个临时表,然后select * from 临时表连接到rs 。通过TDBGrid编辑rs后,update后,将连接到T_BConDetail的rs1的记录和rs的记录进行比较,新增的用rs.addnew添加,删除的用rs.remove删除,rs.update就可以了。