我用如下的 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 中的一条记录而已。
请问有什么办法可以解决?
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 中的一条记录而已。
请问有什么办法可以解决?
虽然这样子会有很多冗余数据,但在查询的时候就可以少用甚至不用JOIN了。而且上边的问题也就不存在了。继续等待其他朋友的指点。
yourAdoDataset.Recordset.Properties.Item['Unique Table'].Value:='Sys_log';