文档内容:
XX-User: [email protected]
XX-MsgType: MAIL_SEND_MAIL
XX-ClientMac: 8080BC0B0400
XX-ServerMac: 983000034F55
行数不固定.
数据库表:  ZT
字段名:CLIENT_MAC
       SERVER_MAC
      SERVER_IP
      SERVER_ID MyADOConnection连接DataSource1打开ADOQuery1写进数据库
表现为DBGridEh1控件显示
8080BC0B0400写进CLIENT_MAC
983000034F55写进SERVER_MAC
谢谢指点,谢谢

解决方案 »

  1.   

    直接用ADOQuery1写入不就可以了么, 
      

  2.   

    插入值的写法
    ADOQuery1.Append;
    ADOQuery1.FieldValues[CLIENT_MAC] := '8080BC0B0400';
    ADOQuery1.FieldValues[SERVER_MAC] := '983000034F55;
    ADOQuery1.Post;
      

  3.   

    FieldValues['CLIENT_MAC']忘了写引号
      

  4.   

    读取文本内容,判断冒号后的字符串
    如果是8080BC0B0400,写入CLIENT_MAC字段
    如果是983000034F55,写入SERVER_MAC字段
      

  5.   

    逐行读取文本文件,然后通过XX-ClientMac:和XX-ServerMac:判断其后内容写入数据库对应的字段
    参考代码如下:procedure TForm1.Button3Click(Sender: TObject);
    var
      fl:TextFile;
      path,s:string;
      str:string;
      i,j,m,n:Integer;
      b:Boolean;
    begin
      path:=ExtractFilePath(Application.ExeName);
      AssignFile(fl,path+'text.txt');
      Reset(fl);
      Self.ADOQuery1.Close;
      self.ADOQuery1.Connection:=self.ADOConnection1;
      self.ADOQuery1.SQL.Add('select * from zt');
      self.ADOQuery1.Open;
      repeat
        Readln(fl,str);
        i:=Pos('XX-ClientMac:',str);
        if i>0 then
        begin
          s:=Copy(str,i+length('XX-ClientMac:'),Length(str)-i-length('XX-ClientMac:')+1);
          self.ADOQuery1.Append;
          self.ADOQuery1.FieldByName('CLIENT_MAC ').AsString:=s;
        end
        else
        begin
          i:=Pos('XX-ServerMac:',str);
          if i>0 then
          begin
            s:=Copy(str,i+length('XX-ServerMac:'),Length(str)-i-length('XX-ServerMac:')+1);
            self.ADOQuery1.FieldByName('SERVER_MAC ').AsString:=s;
            self.ADOQuery1.Post;
          end
        end;
      until
        SeekEof(fl);
      CloseFile(fl);
    end;
      

  6.   

    不好意思,落了一句
    self.ADOQuery1.Connection:=self.ADOConnection1;
    self.ADOQuery1.SQL.Clear;
    self.ADOQuery1.SQL.Add('select * from zt');
      

  7.   

    为什么会提示一个ADOConnection1连接
    要用户名,密码?
    谢谢
      

  8.   

    将ADOConnection1的属性LoginPrompt改为false顺便学习楼上的 哈哈
      

  9.   

    ADOQuery1找不见'CLIENT_MAC '.
    提示错误.
    5楼,谢谢指教.
      

  10.   


    procedure TForm1.btn1Click(Sender: TObject);
    const
    Smtext:array [0..1] of string=('ClientMac:','ServerMac:');
    SFileds:array [0..1] of string=('CLIENT_MAC','SERVER_MAC');
    var
    i:integer;
    j:Integer;
    Stmli:TStringList;
    begin
     if OpenDialog1.Execute then begin
          Stmli:=TStringList.Create;
          try
           Stmli.LoadFromFile(OpenDialog1.FileName);
          with ADOQuery1 do begin
            DisableControls;
           for I := 0 to Stmli.Count - 1 do
            for j := 0 to 1 do
               if Pos(Smtext[j],Stmli.Strings[i])>0 then begin
                   Append;
                   FieldByName(SFileds[j]).AsString:=Trim(Copy(Stmli.Strings[i],Pos(':',Stmli.Strings[i])+1,maxint));
                   post;
                  end;
            EnableControls;
          end;
          finally
            Stmli.Free;
         end;
     end;
    end;
      

  11.   

    嘿嘿,那段代码里self.ADOQuery1.FieldByName('CLIENT_MAC ').AsString:=s;多了个空格,不好意思
      

  12.   

    ('CLIENT_MAC ').AsString:=s;多了个空格
    我找了大半天,是我太愚笨啦
    见笑
    谢谢,结贴