以下代码是统计一定条件的记录,显示在DBGRID中,第一次点击‘统计’按钮,没有问题,但第二次点击时数据库里的相关记录被删除了,为什么StatSQL:='Select dbo.T_CarManage.RecordID,dbo.T_CarManage.Card_code,dbo.T_CarManage.DriverId,dbo.T_CarManage.DriverName,dbo.T_CarManage.owner AS Expr1,'+
'dbo.T_CarManage.Allow1,dbo.T_CarManage.Allow2,dbo.T_CarManage.Allow3,dbo.T_CarManage.G_Team,dbo.T_Study.RecordID,dbo.T_Study.nianfen '+
'From dbo.T_CarManage INNER JOIN dbo.T_Study ON dbo.T_CarManage.RecordID=dbo.T_Study.RecordID Where T_Study.nianfen = '''+trim(edtyear.Text)+''''+
' and T_CarManage.G_team like '''+Trim(cbbteam.Text)+'%'''+
' and T_Study.daohui =''' +inttostr(RecNum)+'''';
SetAdoLink(adostart,StatSQL);//SQL语句连接数据库的函数
with adostart do
begin
first;
for i:=1 to recordcount do
begin
Id:=fieldbyname('RecordId').value;
SetAdoLink(adonumber,'select * from T_Study WHERE RecordId='''+ID+'''');
IF adonumber.RecordCount <>num then adostart.delete;
next;
end;
end;
'dbo.T_CarManage.Allow1,dbo.T_CarManage.Allow2,dbo.T_CarManage.Allow3,dbo.T_CarManage.G_Team,dbo.T_Study.RecordID,dbo.T_Study.nianfen '+
'From dbo.T_CarManage INNER JOIN dbo.T_Study ON dbo.T_CarManage.RecordID=dbo.T_Study.RecordID Where T_Study.nianfen = '''+trim(edtyear.Text)+''''+
' and T_CarManage.G_team like '''+Trim(cbbteam.Text)+'%'''+
' and T_Study.daohui =''' +inttostr(RecNum)+'''';
SetAdoLink(adostart,StatSQL);//SQL语句连接数据库的函数
with adostart do
begin
first;
for i:=1 to recordcount do
begin
Id:=fieldbyname('RecordId').value;
SetAdoLink(adonumber,'select * from T_Study WHERE RecordId='''+ID+'''');
IF adonumber.RecordCount <>num then adostart.delete;
next;
end;
end;
改改你的设计吧