如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表上数据量大,速度慢得离谱,我自己都不能接受!
//****************************
//增加记录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?