我在C++Builder6.0里面,通过ADO组件链接VFP6的数据库,可是执行这条语句
select * from mydb.dbf into dbf newdb.dbf
不报错,但不产生我期望的文件。但在VFP的命运窗口执行却可以产生结果,为什么,如何用ADO保存查询出来的数据为一个新表,希望能得到帮助源码:
 MyModule->ADOConnection1->Close();
 MyModule->ADOConnection1->ConnectionString = "Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=" + DataPath + ";Exclusive=No";
 MyModule->ADOConnection1->Open(); MyModule->ADOQuery1->Close();
 MyModule->ADOQuery1->Connection = MyModule->ADOConnection1;
 MyModule->ADOQuery1->SQL->Clear();
 AnsiString sql = "select * from mydb.dbf into dbf newdb.dbf";
 MyModule->ADOQuery1->SQL->Add(sql);
 MyModule->ADOQuery1->ExecSQL(); MyModule->ADOQuery1->Close();

解决方案 »

  1.   

    MyModule-> ADOQuery1-> ExecSQL(); 
    改为
    MyModule-> ADOQuery1->Open(); 

    MyModule-> ADOQuery1->Active =true;
      

  2.   


      MyModule-> ADOConnection1-> Close(); 
      MyModule-> ADOConnection1-> ConnectionString   =   "Driver=Microsoft   Visual   FoxPro   Driver;SourceType=DBF;SourceDB="   +   DataPath   +   ";Exclusive=No"; 
      MyModule-> ADOConnection1-> Open();   MyModule-> ADOQuery1-> Close(); 
      MyModule-> ADOQuery1-> Connection   =   MyModule-> ADOConnection1; 
      MyModule-> ADOQuery1-> SQL-> Clear(); 
      AnsiString   sql   =   "select   *   from   mydb.dbf   into   dbf   newdb.dbf"; 
      MyModule-> ADOQuery1-> SQL-> Add(sql); 
      MyModule-> ADOQuery1-> open(); //MyModule-> ADOQuery1-> ExecSQL();      //不要这一句 MyModule-> ADOQuery1-> Close();
      

  3.   

    adoconnection3.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+source+';Extended Properties=dBase 5.0;Persist Security Info=False ';
    ado_lj.Connection:=adoconnection3;
       ado_lj.SQL.Clear;                           //连接到VF中,创建一个表
       ado_lj.SQL.Add('create table cbjl(yhbh Char(10) ,yhmc Char(20) ,cbh Char(10) ,yhdz Char(20) ,ssqy Char(20) ,khrq Char(10) ,'+
                      'sbqsds Char(10) ,bycbs Char(10) ,jjsl Char(10) ,cby Char(10)  ,cbrq Char(10) ,yslxmc Char(16) ,'+
                      'yslxdj Char(10) ,yszj Char(10) ,zjje Char(10) ,cbbz Char(4),syysl Char(10),syzd Char(16),ssyzd Char(16),sssyzd Char(16))');  
       ado_lj.ExecSQL;
    ado_lj.SQL.Clear;
    ado_lj.SQL.Text:='select * from cbjl';
    ado_lj.Open;
    ado_lj.Insert;
    .
    .
    .
    .
    .
    .
      

  4.   

    select   *   from   mydb.dbf   into   dbf   newdb.dbf
    把dbf去掉试试
    select   *   from   mydb.dbf   into   newdb.dbf