请问在 MIDAS 中如何更新多个数据表Join来的数据?我在远程数据模块的DataSet是TADOQuery啊,根据李维所说的可以更新的啊?但是在MIDAS里

  • 主题发起人 主题发起人 xhyph
  • 开始时间 开始时间
X

xhyph

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在 MIDAS 中如何更新多个数据表Join来的数据?我在远程数据模块的DataSet是TADOQuery啊,根据李维所说的可以更新的啊?但是在MIDAS里面怎么不能更新??(50分)<br />我有两个表 Book_Self Book_Info
用DCOM
在客户端的CliendDataSet的CommandText我填入
select
dbo_Book_Self.书名,
dbo_Book_Self.数量,
dbo_Book_Self.营业员编号,
dbo_Book_Self.店名,
dbo_Book_Self.日期,
dbo_Book_Info.作者,
dbo_Book_Info.作者,
dbo_Book_Info.出版社,
dbo_Book_Info.进货价,
dbo_Book_Info.所属种类,
dbo_Book_Info.存货量,
dbo_Book_Info.价格
from
dbo.Book_Self dbo_Book_Self,
dbo.Book_Info dbo_Book_Info
where
(dbo_Book_Self.书名=dbo_Book_Info.书名)

虽然可以正确在客户端显示,但是修改后, self.m_ClientDataSet.ApplyUpdates(0);
有人说要Join所有的字段 我这里是所有的字段啊
还有 服务端的m_DataSetProvider的ResolveToData 无论是True还是False
都没有用,服务端的数据库没有变化
请问如何在MIDAS里面进行多个数据表的更新????
 
用事务看看。
 
和事务有什么关系?
 
要用ADO,用BDE必须另加代码.
 
继续看李维的系统篇吧
上面有介绍 :)
 
系统篇里面没有讲到ADO
我看李维的ADO/COM+/MTS篇里面说ADO可以自行更新
但不是三层的,
请问在三层里的是否能够象两层里的那样不需要添加代码让ADO自行更新
或者谁给我个简单的例子
三层的ADO的多个表的更新
 
xhyph@21cn.com
给我个例子吧
 
我又试了几次,发现如果把Join的SQL语句放在服务端的
ADOQuery那里执行, 在客户端显示的记录可以修改,
但是如果在客户端赋予ClientDataSet.CommandText的Join
语句,就不能修改,在服务端的ResolveToDataSet不管是True
还是False,都是这样的,仿佛失效了似的,难道真的是这样的
吗?
 
又有进展
原来可以在客户端更新的,
但是只能在客户端更新除书名之外的字段名,
就因为书名是on 条件中的出现的字段名,
Select Book_Self.书名,Book_Info.价格 from Book_Self left outer join Book_Info
on Book_Self.书名=Book_Info.书名
 
你们谁试过??
难道那个书名不能更新吗?
 
没人知道吗?
没人知道吗?
没人知道吗?
没人知道吗?
没人知道吗?
没人知道吗?
没人知道吗?
没人知道吗?
 
采用如下方法,更新数据:连接的字段名,要同时更新
Sql语句如下:
select
dbo_Book_Self.书名,
dbo_Book_Info.书名 //这个字段要同时更新
dbo_Book_Self.数量,
dbo_Book_Self.营业员编号,
dbo_Book_Self.店名,
dbo_Book_Self.日期,
dbo_Book_Info.作者,
dbo_Book_Info.作者,
dbo_Book_Info.出版社,
dbo_Book_Info.进货价,
dbo_Book_Info.所属种类,
dbo_Book_Info.存货量,
dbo_Book_Info.价格
from
dbo.Book_Self dbo_Book_Self,
dbo.Book_Info dbo_Book_Info
where
(dbo_Book_Self.书名=dbo_Book_Info.书名)
 
ADO不能直接实现JOIN更新!!
李维只知道傻呼呼的说ADO多么智能!
 
select所有的字段,包括用来连接的字段。
select
dbo_Book_Self.书名,
dbo_Book_Self.数量,
dbo_Book_Self.营业员编号,
dbo_Book_Self.店名,
dbo_Book_Self.日期,
dbo_Book_Info.作者,
dbo_Book_Info.作者,
dbo_Book_Info.出版社,
dbo_Book_Info.进货价,
dbo_Book_Info.所属种类,
dbo_Book_Info.存货量,
dbo_Book_Info.价格,
dbo_Book_Info.书名
from
dbo.Book_Self dbo_Book_Self,
dbo.Book_Info dbo_Book_Info
where
(dbo_Book_Self.书名=dbo_Book_Info.书名)
更新时保证两个书名一样。这样是可以更新的。
m_DataSetProvider的ResolveToDataset:=True
 
我今天试过用李维在《分布式多层应用系统篇》第三章的更新多表方法,可以成功的
更新多个表,你试试看!!
 
自动更新从多个表中Join来的数据,要借助ADO的功能,MIDAS本身没有这种功能,所以你的AppServer端的数据库访问技术必须使用
ADO。我一直这样做,没有问题。(注意:AppServer端DataSetProvider的ResolveToDataSet属性一定要设置为ture,使向数据库更新时通过ADO
数据集组件)
如果使用其他数据库访问技术,则要自己写代码实现。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
752
SUNSTONE的Delphi笔记
S
S
回复
0
查看
759
SUNSTONE的Delphi笔记
S
I
回复
0
查看
609
import
I
后退
顶部