用代码新增记录出错,请数据库高手HELP,在线等候
Dim rsadd As New ADODB.Recordset
With rsadd
.ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "select * from asn_zhd"
.AddNew
'需检查内码的完整性
.Fields("单据号码").value = txtdisplay(0).Text
'.Fields("入仓验收单号").value =
.Fields("质化编号").value = txtdisplay(7).Text
.Fields("执行标准").value = IZXBZID
.Fields("产品内码").value = ICPID
.Fields("计量单位内码").value = IUNITID
.Fields("水泥数量").value = txtdisplay(8).Text
.Fields("部门内码").value = IBMID
.Fields("仓库内码").value = ICKID
'.Fields("仓库类别").value = ICKID
'.Fields("发出数量").value = txtdisplay(0).Text
.Fields("抗折强度1").value = txtdisplay(2).Text
.Fields("抗折强度3").value = txtdisplay(5).Text
.Fields("抗压强度1").value = txtdisplay(3).Text
.Fields("抗压强度3").value = txtdisplay(6).Text
.Fields("强度等级").value = txtdisplay(4).Text
.Fields("终止日期").value = DTPicker1(1).value
.Fields("批准人内码").value = loginid
.Fields("录入日期").value = DTPicker1(0).value
.Fields("备注").value = txtdisplay(1).Text
'.Fields("审核标志").value = txtdisplay(0).Text
'.Fields("报告单1号码").value = txtdisplay(0).Text
'.Fields("报告单3号码").value = txtdisplay(0).Text
'更新时触发器执行错误
.Update
.Close
End With
单据编码在数据库中进行了主键唯一索引,并使用了触发器
CREATE TRIGGER ASN_ZHD_INSERT ON dbo.ASN_ZHD
FOR insert
AS
DECLARE @单据号码 char (20) ,
@质化编号 char (10) ,
@执行标准 char (20) ,
@产品内码 int ,
@计量单位内码 int ,
@水泥数量 numeric(18, 2) ,
@部门内码 int ,
@仓库内码 int ,
@发出数量 numeric(10, 4) ,
@终止日期 datetime ,
@关闭状态 char (10) ,
@批准人内码 int ,
@录入日期 datetime ,
@审核标志 char (10) ,
@仓库类别 char (10) ,
@入仓验收单号 char (20)
SELECT @单据号码=单据号码,@质化编号=质化编号,@执行标准=执行标准,@产品内码=产品内码,@计量单位内码=计量单位内码,@水泥数量=水泥数量,@发出数量=发出数量,
@部门内码=部门内码,@仓库内码=仓库内码,@终止日期=终止日期,@关闭状态=关闭状态,@批准人内码=批准人内码,@录入日期=录入日期,@审核标志=审核标志,@仓库类别=仓库类别,@入仓验收单号=入仓验收单号
FROM INSERTED
UPDATE ASN_WH_NUM
SET ASN_WH_NUM.当前值=ASN_WH_NUM.当前值+1
WHERE ASN_WH_NUM.模块代码='asn_zhd'
UPDATE T_STOCK
SET F_102='占用'
WHERE T_STOCK.FITEMID=@仓库内码
--IF RTRIM(LTRIM(@仓库类别))='包装成品' BEGIN
-- UPDATE ASN_RCYSD
-- SET 批准数量=@水泥数量,批准单号=@单据号码,批准日期=GETDATE(),审核标志='已审核'
-- WHERE ASN_RCYSD.单据号码=@入仓验收单号
--END
**********在第二次保留的过程中会提示,单据号码的主键约束不唯一。去掉INSERT触发器就没有什么问题,不知道是游标问题,还是其他,请指教