今天必须解决的问题,各位帮帮忙!!!(50分)

  • 主题发起人 主题发起人 xinyt
  • 开始时间 开始时间
X

xinyt

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ADODataSet的Savetofile方法将数据集中的数据保存为一个文件,
当调用LoadFromFile方法恢复时,在DELPHI前台界面显示正常,并且我还可继续编辑,可后台的
SQL SERVER 中的数据根本就没有改变,我将ADODataSet关闭后再打开,恢复的数据还是能在
界面显示出来,可SQL SERVER 中的数据还是没有改变。
我想,是不是ADODataSet有什么属性我不会设置。
救救我。
 
怎么没人理我?
 
我用的是Oracle ,所以不用ADODataSet,而是用ClientDataSet,可能有所不同,不知道
我的看法是否正确:
SaveToFile方法后,数据集保存在一个文件中(是一个Copy),LoadFromFile方法后,ADODataSet
指向的是本地硬盘上的数据集文件,而不是SQL Server中的Table,所以所作修改都是对
本地表的,根本没有反映到后台,要避免这种情况,SaveToFile以后,就不要LoadFromFile,
所作改动就是对后台的。试试吧。
 
等一會,我來試一下
 
我知道了在delphi在調用loadfromFile後,locktype會編為ltBatchOptimistic,所以必須這樣
adoquery1.loadfromFile('c:/windows/desktop/111.txt');
adoquery1.close;
adoquery1.locktype:=ltOptimistic;
adoquery1.open;
 
是否应该UpdateBatch一下
 
ADOTable.UpdateBatch(arALL);
ADOTable.Close;
ADOTable.TableDirect:=True;
ADOTable.TableName:='??????'; //原来的表名(Save/Load时被改成了文件名)
ADOTable.Open;

 
pipi 和 lazy_cat 的方法还是不可以,
龙丹的方法 也不行。
各位,再帮忙想一想。
 
xinyt:
ADODataSet.commandtype是什麼?
我用的Adoquery,試過了可以存
 
lazy_cat:
我附上原码,请您看一下,
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.SaveToFile(Edit1.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOtable1.LoadFromFile(Edit1.text);
ADOquery1.Close;
ADODataSet1.LockType:=ltOptimistic;
ADOQuery1.Open;
end;
界面上也看不到数据,数据表中的数据没有改变。
结果和龙丹的一样。
这和ADODataSet的commandtype有关吗?
 
loadfromfile后只是将保存到硬盘上的信息写回到adodataset中
但并没有提交,你试者提交一下.不知adodataset有没有post方法,
我没有用过adodataset,但想来应该差不多吧.clientdataset是用
的upapply方法.
 
xinyt
怎麼一會用ADOtable1,一會用ADOquery1,一會用ADODataset1,到底用那個控件.
只用一個試試
 
气死我了,不行!
 
I'm sorry,I also don't know
 
你的问题我和LAZY_CAT一样迷惑!你为什么一会儿用ADOTABLE,一会儿用ADOQUERY,一会儿用ADODATESETS,
你只要用一个就能完成操作!
我是这样做的!你看行不行
1:我用一个ADOQUERY查询数据的结果,然后将结果保存到一个文件中
2:我在用一个ADOTABLE装在这个文件,并且我给ADOTABLE配置好属性(connection和tablename)
3: 然后激活ADOTABLE
4:修改,增加ADOTABLE里的数据
5:提交
ADOTable1.LockType:=ltBatchOptimistic;
DOTable1.UpdateBatch(arAll);

我已经测试通过没有问题
 
我也不知道为什么?
谢谢各位的答案,分数少了点,不好意思。
 
后退
顶部