请问,
1.导入的时候,可否弹出摸块加入条件.加个导入时间,导入来源,手工添写.导入记录后在记录里面显示.
如:OpenDialog1.Filter:='.TXT';
    if OpenDialog1.Execute  then
    path:=opendialog1.FileName;
    AssignFile(fl,path);
    Reset(fl);
    repeat
    Readln(fl,str);
    form1.ADOQuery1.Close;
  form1.ADOQuery1.Connection:=form1.ADOConnection1;
  form1.ADOQuery1.SQL.Clear;
  form1.ADOQuery1.SQL.Add('insert into  ZT (PROTOCOL) values (':s1')');
       ...
     until
    SeekEof(fl);
  CloseFile(fl);
我应该在什么位置加?
2.导入的数据,可否按序自动生成ID,该如何操作?
请指点.

解决方案 »

  1.   

    1.在数据提交前录入
    with T录入窗体.Create(nil) then
    begin
      ShowModal;
      if ModalResult = mrOK then
      begin
        操作数据集
      end;
    end;2.方法很多,可以去表中最大值+1,或设置自增字段
      

  2.   

    1.你这个项目如果每找到一条就弹出一次输入窗口,好像用户会骂你的吧,是不是应该先输入导入时间和导入来源,然后此次所有找到记录都使用此时间和来源
    另外,你的导入时间和导入来源是可以自动获取的
    2.两种方法,第一种最简单的就是自动编号字段,但是存在一个问题,删除记录后不会重新编号,仍继续增加,可能导致数值很大
    第二种方法就是自己编号,每次导入前,先取出当前表中id的最大值,用select max(id) as id1 from db 然后每添加一条记录,id1+1
      

  3.   


    with T录入窗体.Create(nil) then 
    begin 
      ShowModal; 
      if ModalResult = mrOK then 
      begin 
        操作数据集 
      end; 
    end; 2楼的方法很好。
      

  4.   

    把我给你的代码发上来,等你结贴的时候接分,这次可是有50分啊,比前几次大方多了,嘿嘿unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Menus,  DBGridEh, ComCtrls,IniFiles, Grids;
     const
      DataBaseName = 'DNSCACHE';  public
        { Public declarations }
        vg_dt:TDateTime;
        vg_source:string;
    procedure TForm1.N1Click(Sender: TObject);
    var
      f: TextFile;
      path, str: string;
      StrDomain, StrData_Type, StrContent: string;
      ITypePos, Ipos, Jpos: Integer;
    begin
      form1.vg_source:='';
      form1.Enabled:=False;
      Form2.DateTimePicker1.Date:=Date;
      form2.DateTimePicker2.Time:=Time;
      Form2.Memo1.Lines.Clear;
      form2.ShowModal;
      if self.vg_source='' then
        Exit;
    procedure TForm2.BitBtn2Click(Sender: TObject);
    begin
      self.Close;
    end;procedure TForm2.BitBtn1Click(Sender: TObject);
    var
      year,mon,day,hour,min,sec,msec:Word;
      dt,tm:TDateTime;
      s:string;
    begin
      s:=self.Memo1.Lines.Text;
      dt:=self.DateTimePicker1.Date;
      tm:=self.DateTimePicker2.Time;
      if s='' then
      begin
        MessageBox(application.Handle,'请输入数据来源','信息',MB_OK or MB_ICONINFORMATION);
        Exit;
      end;
      DecodeDate(dt,year,mon,day);
      DecodeTime(tm,hour,min,sec,msec);
      form1.vg_dt:=EncodeDateTime(year,mon,day,hour,min,sec,msec);
      form1.vg_source:=s;
      self.Close;
    end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      form1.Enabled:=True;
    end;