一个下拉框,根据下拉框显示DBEdit1,
我已经设置ADOTable1的ltBatchOptimistic,
但在还是可以看到DBEdit1被自动修改了,
ComboBox1显示学号   DBEdit1根据ComboBox1显示分数学号0001     分数 80
学号0002     分数70
学号0003     分数90我把DBEdit1的分数70改成60,没有点保存,
切换ComboBox1 就发现学号0002 的分数为60虽然再次打开,还是70  但是在当前会被认为是已经修改了

解决方案 »

  1.   

    ADOTable、ADOQuery、ADODataSet等称为数据集组件,其实质就是一张内存表,你将70改为60,而不点保存(ADOTable1.Update),那么你只是在内存中作了修改,没有将修改保存到磁盘上。所以下次打开看到的仍然是70而不是60.
      

  2.   

    DBEdit1已经与表的一个字段相关联,对DBEdit1改动就会影响表的一个字段,不过这个表是在内存里,执行提交数据库的操作后,才可以改变数据库里的值。
      

  3.   

    你将这个控件的属性设置为:onlyread试试吧
      

  4.   

    楼上该说的都说了
    看你的需求,又要显示,又要修改,如果数据量不大,其实我建议你不要使用DBEdit,就用一般的Edit。
    需要改什么东西,用SQL语句实现,Edit只负责显示。
      

  5.   


    就是因为Edit太麻烦了 动不动简单的增删查改  都要写代码
      

  6.   


    如果你使用了DBEdit,那就没法不修改内存,因为DBEdit是数据感知控件(也叫数据绑定控件),它会自动显示数据库中相应的字段值。 只能改用Edit了,只不过要写一些代码来完成数据显示及存回工作。