我通过一个类来控制一个Form, Form的数据源是一个临时表,这个临时表的数据由类来构造。
当Form上的对应字段被修改后,类会根据新的字段值来重新构造数据,并传递给Form.
Form在更新时使用这样的语句:
delete_from temporarytable;//当前数据源名字为temporarytable
temporarytable.settmpdata(new common);
temporarytable.excutequery();
但是,我发现第一次修改字段的时候,一起正常。从第二次开始,当修改字段时,发现新的记录并没有被显示,相反,整个界面完全是空的。
Debug后发现在settmpdata()这一句时,参数有值,但是并没有给当前数据源赋上值。
个人认为这是比较奇怪的,理论上不应该有这样的问题, 而且貌似是时有时无的问题。
修改建议:去掉 delete_from这一行(其实从逻辑上讲这一行压根就不需要,因为settmpdata会重新临时表), 这样就好了。至于为什么这样就不会有问题,我也说不清楚,希望有高人解释一下。