最近在学习DELPHI的数据库中,遇到了两个问题,希望各位能帮忙解决一下!1.我对搜索到的数据进行编辑,然后提交的时候出现query1:cannot modify a readonly dataset.然后我按照网上的提示,把query1.requestlive:=true但是仍然不行,我现在把我的代码贴出来,各位帮忙看一下.procedure TForm3.Button4Click(Sender: TObject);
begin
if application.MessageBox('确定要提交这些数据?','警告',mb_yesno)=id_yes then
begin
query1.RequestLive:=true;
query1.Edit;
query1.Fields[1].AsString:=trim(edit4.text);
query1.Fields[2].AsString:=trim(edit5.text);
query1.Fields[3].AsString:=trim(edit6.text);
query1.Fields[4].AsString:=trim(edit7.text);
query1.Fields[5].Value:=trim(edit8.text);
query1.Fields[6].Value:=trim(edit9.text);
query1.Fields[7].Value:=trim(edit10.text);
query1.Post;
end
else
showmessage('等修改完了再提交吧');
end;2.我建立FORM直接就是从NEW-FORM建立的,然后我打开FORM2就直接用FORM2.SHOW;然后就出现问题了,当我用FORM2.SHOW打开FORM2的时候,按照一个数据查询得到一组数据,然后关闭FORM2,当然我再打开FORM2,出现在DBGIRD的还是那组数据,并不是跟我第一次打开FORM2时出现所有数据一样.然后我在网上找,说是要在FORMCLOSE中写上CLOSE:=CAFREE;但是当我写上这句代码,运行程序的时候,当我关闭了FORM2,再打开FORM2的时候,仍然报错,好象说是没有初始化.不知道各位遇到这样的情况没有?你们新建FORM是怎么样新建的,也是NEW-FORM还是编写代码的啊.哪位好心人能不能写一段代码给小弟看看,让我学习一下,我买了几本书上都没有谈及这方面的问题.

解决方案 »

  1.   

    Application.create(tForm2,Form2);
    Form2.Showmodal;
    Form2.Free;
      

  2.   

    application.create(tform2,form2)这段代码写在什么地方啊这是不是不需要在NEW-FORM中建立FORM2了啊
      

  3.   

    1.从错误提示来看,是你的数据集是只读的,不能修改数据。
      你的代码没有多大问题。
      问题:估计是你的数据集组件的LOCKTYPE属性被设置为了
            ltReadOnly;此时应将其设置为:ltOptimistic;
    2.你的窗体是自动创建的,如果想在对数据库的数据操作完成
    后能看到更新后的结果集,你要完成对你所用的数据集的刷新操作,
    应分别执行类似下面的操作,以完成数据集的显示更新功能:
     如果是查询得到的数据集:
       Aquery.close;
       aquery.prepared;
       aquery.open;
     如果是通过表得到数据集:
       atabel.close;
       atabel.open;
      

  4.   

    1.从错误提示来看,是你的数据集是只读的,不能修改数据。
      你的代码没有多大问题。
      问题:估计是你的数据集组件的LOCKTYPE属性被设置为了
            ltReadOnly;此时应将其设置为:ltOptimistic;
    2.你的窗体是自动创建的,如果想在对数据库的数据操作完成
    后能看到更新后的结果集,你要完成对你所用的数据集的刷新操作,
    应分别执行类似下面的操作,以完成数据集的显示更新功能:
     如果是查询得到的数据集:
       Aquery.close;
       aquery.prepared;
       aquery.open;
     如果是通过表得到数据集:
       atabel.close;
       atabel.open;
      

  5.   

    楼上的,我怎么在QUERY中没有locktype的属性啊