数据库多表联查返回的数据集删除的有关问题
数据库多表联查返回的数据集删除的问题
我用如下的 SQL 进行查询:
SELECT Logs.Auto_ID AS 自动编号,
oType.cOpTypeName AS 操作类型, Users.cUser_Id AS 用户编码,
Users.cUser_Name AS 用户名, Logs.cComputerName AS 客户端计算机名,
Logs.cIP AS '客户端 IP 地址 ', Logs.dtOpDateTime AS 操作日期
FROM dbo.Sys_Logs Logs LEFT OUTER JOIN
dbo.Sys_Users Users ON Logs.cUser_Id = Users.cUser_Id LEFT OUTER JOIN
dbo.Sys_OperationType oType ON Logs.cOptype_ID = oType.cOpType_ID
数据控件用的是 TADODataSet,
为什么一 Delete,会一同把 Sys_Logs, Sys_Users, Sys_OperationTypev 三张表中的相关记录一并删除掉呢?
而我实际上仅仅是想删除 Sys_Logs 中的一条记录而已。
请问有什么办法可以解决?
------解决方案--------------------
可以解决的:
yourAdoDataset.Recordset.Properties.Item[ 'Unique Table '].Value:= 'Sys_log ';
我用如下的 SQL 进行查询:
SELECT Logs.Auto_ID AS 自动编号,
oType.cOpTypeName AS 操作类型, Users.cUser_Id AS 用户编码,
Users.cUser_Name AS 用户名, Logs.cComputerName AS 客户端计算机名,
Logs.cIP AS '客户端 IP 地址 ', Logs.dtOpDateTime AS 操作日期
FROM dbo.Sys_Logs Logs LEFT OUTER JOIN
dbo.Sys_Users Users ON Logs.cUser_Id = Users.cUser_Id LEFT OUTER JOIN
dbo.Sys_OperationType oType ON Logs.cOptype_ID = oType.cOpType_ID
数据控件用的是 TADODataSet,
为什么一 Delete,会一同把 Sys_Logs, Sys_Users, Sys_OperationTypev 三张表中的相关记录一并删除掉呢?
而我实际上仅仅是想删除 Sys_Logs 中的一条记录而已。
请问有什么办法可以解决?
------解决方案--------------------
可以解决的:
yourAdoDataset.Recordset.Properties.Item[ 'Unique Table '].Value:= 'Sys_log ';