用delphi写了段导入txt文件到数据库的程序,文本文件中的数据以三种方式分隔:, ; 空格,但现在我在程序里面不管如何设置,程序只能识别"," 这是怎么回事,请高手帮忙,急得很,在现等!  cntstr := 'Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source='+ FFileName + ';Mode=ReadWrite;Extended Properties="text';
  if fopstate<>opCreate then
  begin
  if FIsHead then
    cntstr := cntstr + ';HDR=YES'
  else
    cntstr := cntstr + ';HDR=NO';
  end;
   //cntstr := cntstr + ';FMT=CSVDelimited"';   
    //cntstr := cntstr + ';FMT=tabdelimitedcsv"';
   cntstr := cntstr + ';FMT=Delimited(;)"';  //这个地方应该是应变量的,但我换成;也没作用,还是没分出来
   FADOConn.Connected := false;
      FADOConn.ConnectionString := cntstr;
   try
    FADOConn.Connected := true;
    FADOConn.GetTableNames(FTables);
   Except
         On e: Exception do
       begin
        addErrorMsg('不能打开Text文件,原因:'+e.Message); //
         raise Exception.Create('不能打开Text文件,当前文件已经损坏或权限不够');
       end;
   end;

解决方案 »

  1.   

    直接用SQL语句导更方便
    EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\文本.txt -c -Sservername -Usa -Ppassword'
      

  2.   

    不行,因为还要让用户设置txt中的列与数据库中的列进行关联!
    我现在就是在取列名的时候,取出来就不正确比如:我以;来分隔,但取出来后的结果是:姓名;年龄;出生日期  根本分不开!用,又是行的!
    郁闷
      

  3.   

    要在对应的文件夹下建议一文件:名为schema.ini
    ====请参看MS SITE文章
    ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/odbc/htm/odbcjetschema_ini_file.htm
    ====
    分享快乐 :www.delphichm.com