查询语句的更新和删除问题(100)

  • 主题发起人 主题发起人 Lenic
  • 开始时间 开始时间
L

Lenic

Unregistered / Unconfirmed
GUEST, unregistred user!
我这里有一个两个表:第一个表Medicines有三个字段:MedicineID,MedicineName,MakerID第二个表Makers有两个字段:MakerID,MakerName这两个表的数据我用下面这条语句提取出来:Select M.MedicineID, M.MedicineName, A.MakerNameFrom Medicines AS M Left Join Makers AS A On M.MakerID = A.MakerID这样查询出来的是一个记录集,我把这个记录集放到TDBGrid中显示。现在问题出来了:我如果要在TDBGrid中增加、修改或者删除,完之后提交到数据库中。怎样在我对TDBGrid操作完成之后,提交到数据库中?我要的不是那种另外重新写一个查询,提交到数据库,然后TDBGrid中刷新数据的那种;而是TDBGrid直接中直接修改,并提交到数据库中。
 
第一次发帖,如果有什么不对的地方,大家多多包涵。
 
Select M.MedicineID, M.MedicineName, A.MakerName, A.MakerID //增加一个字段From Medicines AS M Left Join Makers AS A On M.MakerID = A.MakerID看看ADO是否可以自动提交,BDE不可以。或者在AfterPost、AfterDelete自己写代码完成数据库的更新
 
这是主从表一起更新的问题,ADO直接可以处理,BDE要挂一个updatesql
 
znxia:我在AfterPost和BeforePost里面都添加了相同的代码,但是问题还是依旧。错误的消息是:缺少更新或刷新键列信息luoyanqing119:能举出一个例子来吗?或者就直接对此例子就行回答。
 
我写了一个类似的select * from employ left join depart on depart.pk=employ.depid在dbgrid中可以直接修改、新增、删除三种操作,环境是D7+ADO------------要不你的也修改为:Select *From Medicines AS M Left Join Makers AS A On M.MakerID = A.MakerID先测试一下再说
 
关注下,我也需要这方面的资料[^]
 
更改为:Select *From Medicines AS M Left Join Makers AS A On M.MakerID = A.MakerID成功通过。。。而且去掉了手工添的代码。不知道是什么原理实现的,但是这样会有很多我不想要的列出现。不过问题基本上有答案了,剩下的就看能不能实现用Select M.MedicineID, M.MedicineName, A.MakerNameFrom Medicines AS M Left Join Makers AS A On M.MakerID = A.MakerID这条语句实现,然后用代码手动去控制插入、删除和更新。
 
你不想要的列可以不用在界面上显示啊,但在beforepost前需要把那些字段的值赋上,ado好像无法自动根据当前的where关联关系,给未赋值的关联字段赋值。结贴给分吧。
 
接受答案了.
 
后退
顶部