比如一个txt文件中有5个表的信息,怎样用程序导入到5个表中?/
-----------------------------
我在数据库相关版面发乐
没人回复
在这个版面发一个
希望有人可以帮助我

解决方案 »

  1.   

    txt导入SQLServer
    select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=c:\temp;','select * from aaaa.txt')
      

  2.   

    用程序好不好分离
    然后如果txt文件中没有分隔符,直接用定长来区分字段和字段
    可以做到吗
      

  3.   

    楼主给的信息不够,如果你的文本文件有一定的格式,那么实现起来并不难,举个例子:
    文本文件内容
    $table1
    f1,f2,f3,f4
    f21,f22,f23,f24
    f31,f32,f33,f34
    ....
    ...
    $table2
    f1,f2,f3,f4,f5,f6,f7,f8
    f21,f22,f23,f24,f25,f26,f27,f28
    f31,f32,f33,f34,f35,f36,f37,f38
    ....
    ...
    ///////////////////////////
    这样的话作起来就很容易呀,使用TStringList就能轻松搞定了:
    var
      fsl:TStringList;
      Line:String;
      ll,li,fi,p1,p2:Integer;
    begin
      fsl:=TStringList.Create;
      try
        fsl.LoadFromFile('tables.txt');
        for li:=0 to pred(fsl.Count) do
        begin
          Line:=fsl[li];
          ll:=Length(Line);
          if Line[1]='$' then
          begin
            ADOTable1.Active:=False;
            ADOTable1.TableName:=Copy(Line,2,ll-1);
            ADOTable1.Active:=True;
          end
          else
          begin
            Fi:=0;
            ADOTable1.Append;
            Line:=Line+',';
            p1:=1;
            repeat
              p2:=PosEx(',',Line,p1);
              ADOTable1.Fields[fi].AsString:=Copy(Line,p1,p2-p1);
              p1:=p2+1;
            until p2>ll;
          end;
        end;
      finally
        fsl.Free;
      end;
    end;