那位帮我看看,我是个新人。找出对应的日期时间生成随机数在 插入到另外一张表。
高人看看,总是有问不知道哪里谢谢大侠们帮帮。
var
   i,j,z,y,a,r,e:string;
   rq1,rq2,sj1,sj2,fh:string;
   sTemp:string;
   Aqry:Tadoquery;begin //数据连接
   Aqry:=TADOQuery.Create(nil);
   Aqry.Connection:=ADOConnection1;
   rq1:=FormatDateTime('yyyy-MM-dd',DateTimePicker1.Date);
   rq2:=FormatDateTime('yyyy-MM-dd',DateTimePicker2.Date);
   sj1:= MaskEdit1.Text;
   sj2:= MaskEdit2.Text;   if sj1= '' then
   if sj2 ='' then
   begin
   showmessage('时间不能为空');
   Exit;
   end;
   while not ADOQuery1.Eof do
  begin   with Aqry DO
   begin
   Aqry.SQL.Clear;
   Aqry.SQL.Text := 'Select * from Att '
   +' where rdate between '''+rq1+''' and '''+rq2+''' '
   +' and rtime between '''+sj1+''' and '''+sj2+''' ';   Aqry.Open;
   if Aqry.RecordCount < 1 then
   begin
   showmessage('日期范围,没有可以更新的数据');
   Exit;
   end
   else
   begin
   Randomize; //Randomize随机函数数
   sTemp:=Format('%.2d',[1+Random(30)]);   i:=Aqry.fieldbyname('CardSerial').AsString;
   j:=Aqry.fieldbyname('RDate').AsString;
   z:='08'+':'+sTemp;
   y:=Aqry.fieldbyname('PersonnelID').AsString;
   a:=Aqry.fieldbyname('MachineNo').AsString;
   r:=Aqry.fieldbyname('Mark').AsString;
   e:=Aqry.fieldbyname('RecordTime').AsString;   Aqry.Close;
   Aqry.SQL.Clear;
   Aqry.SQL.text:='INSERT Att_AA (CardSerial, RDate, RTime,PersonnelID,CardNo,MachineNo,Mark,RecordTime)'
   +' values('''+i+''','''+j+''','''+z+''','+y+',''000000'','+a+','+r+','''+e+''')';
   Aqry.ExecSQL;
   ADOQuery1.Next;
   end;   end;   end;

解决方案 »

  1.   

    Aqry.SQL.text:='INSERT Att_AA (CardSerial, RDate, RTime,PersonnelID,CardNo,MachineNo,Mark,RecordTime)'
    应该是insert into
      

  2.   

    你用的什么数据库?SQL语句有问题
      

  3.   

    跟踪下,看是不是Insert语法有错误。
    一般Sql 使用的是Insert Into.
      

  4.   

    INSERT into Att_AA 
      

  5.   

    只插入了一条数据就报错了,那位高人指教一下
    cannot pirfrom thin operation on a closed dataset