savetofile、loadfromfile这两个方法究竟如何使用?我先用savetofile将A表中的数据写入B文件然后将A表删空再用loadfromfile从B文件中把数据读到A表中。
////////////////////////////////////////
ADOQuery1.Open; //
ADOQuery1.SaveToFile('d:\A.xxx'); //------------------(1)
////////////////////////////////////////
ADOQuery1.LoadFromFile('d:\A.xxx')'; //------------------(2)
////////////////////////////////////////
运行程序先执行(1)部分,退出程序将于ADOQuery1关联的表删空。再运行程序执行(2)部分;
我用一个数据表格和ADOQuery1关联发现在执行(2)部分时表格有相关的数据显示但是当我退出程序检查数据库时发现数据库还是空的,这是什么原因,求解答?
////////////////////////////////////////
ADOQuery1.Open; //
ADOQuery1.SaveToFile('d:\A.xxx'); //------------------(1)
////////////////////////////////////////
ADOQuery1.LoadFromFile('d:\A.xxx')'; //------------------(2)
////////////////////////////////////////
运行程序先执行(1)部分,退出程序将于ADOQuery1关联的表删空。再运行程序执行(2)部分;
我用一个数据表格和ADOQuery1关联发现在执行(2)部分时表格有相关的数据显示但是当我退出程序检查数据库时发现数据库还是空的,这是什么原因,求解答?
ADOQuery1.post 试试看
ADOQuery1.SaveToFile('d:\A.xxx'); //------------------(1)
////////////////////////////////////////
ADOQuery1.LoadFromFile('d:\A.xxx')'; //------------------(2)
////////////////////////////////////////Adoquery1.post;
试试ADOQuery1.UpdateBatch(arAll);
这说明问题就在于TADOquery在内部怎么处理LoadFromFile()函数。查VCL:如下
procedure TCustomADODataSet.LoadFromFile(const FileName: WideString);
begin
Close;
CommandType := cmdFile;
LockType := ltBatchOptimistic;
CommandText := FileName;
Open;
end;显然采用的是命令方式,但在其子类TADOQuery中,却无法访问CommandType,CommandText属性。
如果先close掉adoquery,然后再采用sql方式重新访问数据库,会出现系统错误,提示loadfromfile操作失败,显然,以前LoadFromFile的操作在ADOquery中仍然保存着,没有被冲掉;也找不到冲掉的办法。 我个人认为采用LoadFromFile()后,TADOQUERY是无法再向数据库提交数据了。也就是说,此方法不可行!
如果你有什么解决办法,欢迎讨论!关注!!!