我自己的方法是:<br>var<br> i: Iteger;<br>begin<br> with TADODataset1 do //TADODataSet1連結遠程SQL的數據集<br> begin<br> if Active then Close;<br> //a_table,b_table,c_table,a1,b1,c1分別為遠程SQL數據庫中的表、字段名<br> CommandText := 'select a.a1,b.b1,c.c1 from a_table a'+<br> 'left join b_table b on a.a1=b.a1 and b.b1=a.b1'+<br> 'left join c_table c on b.b1=c.b1';<br> Open;<br> end;<br> with TADODataSet2 do //TADODataSet2連結本地Access數據庫的臨時數據集<br> begin<br> if Active then Close;<br> //d_table為本地Access數據庫的表名<br> CommandText := 'select a1,b1,c1 from d_table';<br> Open;<br> end;<br> while not ADODataset1.Eof do //遍歷數據集ADODataSet1,一條條寫進ADODataset2<br> //對於大量的數據查詢,這種方法勢必會出現Timeout想象,故不可取!<br> begin<br> ADODataset2.Append;<br> for i:=0 to ADODataSet1.Fields.Count - 1 do<br> ADODataset1.Fields.AsString := ADODataset2.Fields.AsString;<br> ADODataSet2.Post;<br> ADODataSet1.Next;<br> end;<br>end;<br>請教高手們,有沒有更好的方法啊???