如adodataset的commandtext为select ano,adate,bname from a,b where a.ano=b.bno,adodateset的locktype=ltBatchOptimistic,需批修改数据,数据显示在GRID中,编辑(包括新增,删除,修改)数据时,通过ano=bno要调出B表bname的值,提交修改时,只想修改A原表的数据,提交(updatebatch)时总是因同时触发A。B两个表而出错。实际上,如果新增时,录入ANO,提交以前,不调出BNAME,因为B表没有栏位修改而不会报错,但那是用户不可能接受的,该怎么处理呢?
因为需要批修改数据,另外写SQL来提交数据也不好写啊。
不要告诉我用LOOKUP字栏,如果B表上数据量大,速度慢得离谱,我自己都不能接受!
因为需要批修改数据,另外写SQL来提交数据也不好写啊。
不要告诉我用LOOKUP字栏,如果B表上数据量大,速度慢得离谱,我自己都不能接受!
解决方案 »
- 如何解决sokcet的stack overflow的问题
- Delphi中如何实现下拉框显示多列?
- 我使用了suiMSNPopForm控件,但怎么让弹出的提示窗体不是自动消失,而是必须手动点击关闭才消失呢?
- 客户端excel导入服务器sqlserver的实现.
- 请教Frame问题
- TLookupComboBox组件的简单问题
- Delphi里WindowsMediaPlayer控件的一个问题
- Visual SourceSafe 6.0哪里有下载?
- 本地数据库paradox中关于时间比较的问题
- 请问在数据库record中查找出一个日期型字段的值在某月之中的记录,
- 保存時 提示錯誤 at end of table 是什麽錯誤啊,急急急急急急急!!!高手幫忙
- 关于Indy套件中IdMessage控件的Bcclist的问题
//****************************
//增加记录1
ADOQuery1.Append();
//字段赋值
ADOQuery.UpdateBatch();
//****************************
//增加记录2
ADOQuery.Insert();
//字段赋值
ADOQuery.Post();
//****************************
//删除记录
ADOQuery.Delete();
//****************************
//修改记录1
ADOQuery.Edit();
//修改的值
ADOQuery.Post();
//****************************
//修改记录2
//如果用的是DBEdit之类的控件,那么直接修改就行 修改完毕后 加上UpdateBatch();
ADOQuery.UpdateBatch();
//****************************
检查一下 你是否按照这个流程来做的呢
或者把你的SQL语句改一下 直接给A增加一条记录 然后在改回去 重新查一下
A 物料
name property
plane size
plane type
plane speed
tank weight
tank loadcount
......
明细表
plane table
id size type speed
tank table
id weitht loadcount
your table like up?