以下程序段由VB翻译过来,但对生成dbf文件时中文记录全显示为"???"(vb下的正常).txt,htm正常。有人碰到吗,怎么改/
procedure TForm1.Button1Click(Sender: TObject);
var
  path,sql:string;
  str_con:string;
begin
conn.Close ;
path:=extractfilepath(application.ExeName );
str_con:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + path + '\my.mdb;Persist Security Info=False;Jet OLEDB:Database Password=test;
conn.ConnectionString :=str_con;
try
  conn.connected:=true;
  showmessage('ok');
except
  showmessage('error');
end;//生成DBF文件表
Sql:='select * into [dBase III;DataBase=' + path + '].' + 'test.dbf' + ' from eu_onipot';
conn.Execute(sql);
showmessage('over dbf');//生成TXT文本文件
Sql:='select * into [text;Database=' + path + '].test.txt' + ' from eu_onipot';
conn.Execute(sql);
showmessage('over txt');//生在HTM文件
Sql:='select * into [html export;database='+ path + '].test.htm' + ' from eu_onipot';
conn.Execute(sql);
showmessage('over html');end;

解决方案 »

  1.   

    dBase III改为DBase 5.0试一下。
      

  2.   

    我从ACCESS2000中导表-》VFP,无乱码问题,用以上方法
      

  3.   

    谢谢楼上。
    我试了一下。效果是一样的。
    不过刚才直接用access的导出功能发现生成的也是“??”符号,看来可能不是程序的问题了。
    不知道有什么其它方法直接由access生成dbf表?
      

  4.   

    奇怪我也是access2000中导表->dBase X,打开后是乱码。
    环境:98系统.
    那为什么那个VB程序在我机器上生成的文件却正常呢(也是用的ado连接的)?
    明天再来看看
      

  5.   

    同样的方法我测试过没有问题,环境win2000+Delphi6