我的程序如下,procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
  var
  i,j, ncount: Integer;
  strreceive,s:string;
begin
  form3.Memo1.Lines.Clear;
  setlength(strreceive,bufferlength);
  move(buffer^,pchar(strreceive)^,bufferlength);
  form3.memo1.Lines.Add(strreceive);
  form3.Memo1.Invalidate;
//以上把数据放在MEMO 上,以下放到数据表进去,
  begin
  nCount := form3.Memo1.Lines.Count;
  with form3.Table1 do
  begin
    last;
    for i := 0 to nCount-3 do       begin
            s := form3.Memo1.Lines.Strings[i];
          try
            append;            FieldByName('cs_id').value := Copy(s,0,9);
            FieldByname('cq').AsString := Copy(s,13,4);
            post;
           except
            showmessage('error!');
          end;
       end;
  end;
end;end;

解决方案 »

  1.   

    命令实行部分procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     if form1.N3.Enabled=false then
     begin timer1.interval:=2000;
     transmit('MDA'+#13#10);(执行这条命令,上面的数据就接收一次)
     end;
    end;
      

  2.   

    命令实行部分procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     if form1.N3.Enabled=false then
     begin timer1.interval:=2000;
     transmit('MDA'+#13#10);(执行这条命令,上面的数据就接收一次)
     end;
    end;
      

  3.   

    “MEMO 里 每秒 采集大概30个左右行的数据,数据格式如下其中我的表,多了一列时间,、”那你可以用这列时间过滤呀,不知道你哪边写起来困难
      

  4.   

    “MEMO 里 每秒 采集大概30个左右行的数据,数据格式如下其中我的表,多了一列时间,、”那你可以用这列时间过滤呀,不知道你哪边写起来困难
      

  5.   

    你的意思是不是要控制数据库表的大小呀,数据库表自动删除数据,可以用触发器,但access可能做不了,那只有在程序里控制了,你可以在每插入一条数据的时候同时对库里的数据进行选择性删除。
      

  6.   

    对呀,你只要对数据表定时删除最方便了。做个线程或时钟定时Delete table Where 条件