关于ADO的一级联更新的老问题!!!关键是新增!! (100分)

  • 主题发起人 主题发起人 thxk
  • 开始时间 开始时间
T

thxk

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的一个问题是关于ADO一个很多的问题了!!我也找了很久一直都没有找到完美的解决的办法!!
所说的设置动态属性 ADODataSet.properties['Unique Table'] = 'TableA' 只能够
解决删除的问题!!
更新时可以设置字段的providerflags的pflnupdate解决!!但很麻烦!而且不能临时的改变字段的值了!
但是新增记录我还不知道办法解决,如果对新增记录的关联表操作了!!他都会插入一条记录到关联表!!
ADO到底能够对JOIN进行,增加,删除/更新吗,那位兄弟有好的解决办法 ???
再把问题仔细描述一下:
有一个HPDAN(商品档案库):
字段: HPBH(商品编号),HPMC(商品名称),GGXH(规格型号)
还一个 JHMX(进货明细库)
字段: SYSNO(单号),HPBH('货品编号'),S_SL(进货数量),J_JE('金额')
我建立一ADOQUERY 设置SQL语句如下:
SELECT JHMX.*,HPDAN.HPMC,HPDAN.GGXH FROM JHMX,HPDAN WHERE JHMX.HPBH=HPDAN.HPBH
并设置为缓冲更新!!!以上的思想是把商品的名称,规格型没有存到JHMX中因为名称和型号
可能会经常改动的,而且很浪费空间!!所以用联接最好!!
但是我对缓冲里APPEND一条新记录,用户可能输入了(HPBH),但是名称还没有刷新,我只有
从HPDAN库找出相应的记录来!!把值赋给ADOQUERY的货品名称!!
但是这样做UpdateBatch() 更新到后台的时候,ADO也会向HPDAN库增加一条只有名称和规格型号的记录!!
而且没有编号!!
有个笨的办法,每次更新把HPDAN库没有货品编号的删掉!!!如果有一万条呢??而且只能一行行的更新!!
痛苦!!!!
WHO CAN HELP ME !
 
谁能告诉我!!!!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1259230
 
DELPHIBBS那些人是老鸟???我想亲自的问问!!
那些人是数据库高手??
 
没人碰到这个问题吗??
 
在线等待!!!..................
 
oh my dear !!!

高手关注一下!!!!!
谢谢,是不是人太少了!!!
 
>>providerflags的pflnupdate
你是说你不会设置这个吗???
》》不对 B表的数据进行更新。怎么实现???
把B表的字段的READONLY设置成TRUE。
 
设成READONLY后没办法改了!!
有时候想临时的用用B 表,我意思是B表无论怎样改!!都只更新A表到后台!!!

 
就是/这个问题我也提过,没有完全解决的/
是不是本身Delphi的问题。一个简单的数据更新,都那么麻烦的哦1
 
咦?

几個月沒來都是一些生面孔了?

>>在BDE中,有UpdateSQL中, 通过UpDateSQL的SQL语句,就可实现对指定表进行数据更新。
>>在ADO中怎么实现啊?
ADO中一樣可以自己寫SQL﹐看看TUpdateSQL是如何實現的
 
>>有时候想临时的用用B 表,我意思是B表无论怎样改!!都只更新A表到后台!!!
只更新A表,下次用户再查询时,他修改的B表的内容没了,也就是又变成以前没修改的
状态了,那用户一定会说你的程序有问题的,所以,这样就不如不让用户改变B表。
 
对你的意思没看得很明白,不过你说的BDE中可以通过UpdateSql的Sql语句来更改,那么在
ADO中,你完全能够通过ADOCommand控件来进行更新,在该控件的CommandText中输入Sql
语句,再execute就行了。不过更新前可能要先关闭数据集,待更新后再打开。
 
HunterTeam,我不想用BDE,也不想写SQL,只想ADO能够实现BDE一样的功能!!!
 
>>我不想用BDE,也不想写SQL,只想ADO能够实现BDE一样的功能!!!
到现在我也不知道你想要实现什么功能?!
 
详细说明了问题!!
帮忙!!我想大家都会碰到的!!
 
这个问题我也有碰到,我自己把ADO控件改写了,可以解决你的问题,不过还得把关联的
表里的字段的providerflags的pflnupdate和pfinwhere都设为false才行,那样关联表中
的字段就不会更新回去了,也不会整天出一些讨厌的问题。如果你需要?可以发给你。
 
jin_sue:
能不能把你改写的控件发一份,谢谢!
jwc@163.net
 
后退
顶部