odac5.7 + Delphi7 + Oracle92使用有如下二个问题请教:
1: 用oraQuery组件,是否只有设置oraquery.localupdate := true才可以编辑?如果没设置这属性为真,我在oraquery.edit的时候就是提示该数据集为只读,而事实上我没有设置它人只读属性!
2:如果设置localupdate := true后,我编辑了数据,在提交的时候:oraquery.updaterecord;
oraquery.commit;
Grid数据显示是没错,但我退出窗体重新进入,刚才的数据事实上并没有保存到后台数据库中?这是什么原因?还有其他属性必须设置吗?
1: 用oraQuery组件,是否只有设置oraquery.localupdate := true才可以编辑?如果没设置这属性为真,我在oraquery.edit的时候就是提示该数据集为只读,而事实上我没有设置它人只读属性!
2:如果设置localupdate := true后,我编辑了数据,在提交的时候:oraquery.updaterecord;
oraquery.commit;
Grid数据显示是没错,但我退出窗体重新进入,刚才的数据事实上并没有保存到后台数据库中?这是什么原因?还有其他属性必须设置吗?
解决方案 »
- 关于李维的第二章
- 才知道TCP会粘包,问一下indy有没这个问题
- 如何关闭子form
- 求教如何在多线程中调用远程方法啊。使用socketconnection
- 酒店系统中,客房概览界面的实现
- 这个SQL语句怎么写?在线等...
- 晕!大家帮忙看看我取服务器时间,并设置为客户端时间的代码有什么问题啊?
- 终止程序运行,Application.Terminate的使用
- [求助] 原来在C/s结构中设置的class(TObject),在Active Library 中应如何设置?
- 100奉送!关于使用HP LaserJet 1000 打印机碰到的问题!!!up也有分*************(斑竹也应该来瞧瞧!!!!)
- 数据库读取问题
- TCPserver Tcpclient 怎么实现聊天室一起聊天的功能呢?
oraquery.localupdate := true,只对本地更新,所以你要更新表中数据,这个参数只能为false
要更新表中数据,可用用OraQuery 的SQL Generator(双击OraQuery可得到),生成Insert/Update/Delete的SQL(分别对应OraQuery的SQLInsert,SQLUpdate,SQLDelete属性)就可以对表进行操作了
用DBEdit/Grid直接连表并对表进行更新,在多用户时容易造成死锁,所以ODAC的OraQuery除SQL外,还有SQLInsert,SQLUpdate,SQLDelete等属性,且特意有VirtualTable控件,用它作为oracle数据表到dbgrid的中间桥梁
sqlinsert是odac特有的,也是为了在dbgrid编辑表用的,它不用execute(如果要用execute,直接在sql属性中写insert into ...就可以了),sqlinsert是用于当在dbgrid中添加记录时,自动生成insert ...SQL,并写到数据库表中,对SQLUpdate,SQLDelete同理