沐
沐枫
Unregistered / Unconfirmed
GUEST, unregistred user!
1. 一个Master表,带一个以上的Detail表,
使用TADODataset/TADOTable,并通过DataSource建立主关键字关连。
同时在每个表中设置每个字段的ProviderFlags属性(中InKey,InWhere,InUpdate),
然后通过TDataSetProvider传递给客户。
客户程序使用SocketConntion连拉,数据表采用TClientDataSet获取Provider传回来的数据,
建立相应的TClientDataSet通过DataSetField,采用NestedTable形式与主TClientDataSet关联。
--> 问题:
TDatasetProvider设置为:ResolveToDataSet=True, UpdateMode=WhereKeyOnly,此时,
主表和子表均可以增加和删除数据,主表可以修改数据,
但子表不能修改数据,如修改,则提交后将出现"Record Changed by Anthoer"错误。
TDataSetProvider设置为:ResolveToDataSet=False,UpdateMode=WhereKeyOnly,此时:
主表和子表均可以删除和修改数据,主表可以增加数据,
但子表不能增加数据,如增加,则提交后将出现"主关键字段不能为NULL"错 误。
请问,为何会有这么大的分别?如果要解决问题,是否只能使用ResolveToDataSet=False,
并且在客户或服务端自行设置和主表关联的关键字段的值,使用不为NULL?
这样一来,Delphi的Master/Detail结构的发处就体现不出来,而且代码量也挺大的
(要保证Master/Detail关键字一致不太容易。)
----->请关注。
2 此系统采用MTS,Delphi已安装UpdataePacked#1, ADO UP#1 ADO UP#2
MTS Module 在没安装 Updatapack之前,只能采用"不支持事务"模式,
安装上述UpdataPack以后,可采用"支持事务"模式,
但"需要事务"和"需要新事务"均不能用,一用,提交事务将出现"不能启动事务(类似)"的错误信息。
数据集采用TADODataSet/TADOTable,然道MIDAS应用在MTS中还仍要自行管理事务吗?
(曾有人提示按李维修改的Provider.pas文件做,但无效。原因是TADODataset处理事务已经有识别是否在MTS中了)
运行和开发环境:Delphi5+ADO2.5+SQL7.0+Windows2000Server
升级包:SQL7Update#2, Delphi5 Update#1 ADOExpress UP#1,Up#2
我把所有分数都拿出来了,以后还可以加,请大家帮忙。
使用TADODataset/TADOTable,并通过DataSource建立主关键字关连。
同时在每个表中设置每个字段的ProviderFlags属性(中InKey,InWhere,InUpdate),
然后通过TDataSetProvider传递给客户。
客户程序使用SocketConntion连拉,数据表采用TClientDataSet获取Provider传回来的数据,
建立相应的TClientDataSet通过DataSetField,采用NestedTable形式与主TClientDataSet关联。
--> 问题:
TDatasetProvider设置为:ResolveToDataSet=True, UpdateMode=WhereKeyOnly,此时,
主表和子表均可以增加和删除数据,主表可以修改数据,
但子表不能修改数据,如修改,则提交后将出现"Record Changed by Anthoer"错误。
TDataSetProvider设置为:ResolveToDataSet=False,UpdateMode=WhereKeyOnly,此时:
主表和子表均可以删除和修改数据,主表可以增加数据,
但子表不能增加数据,如增加,则提交后将出现"主关键字段不能为NULL"错 误。
请问,为何会有这么大的分别?如果要解决问题,是否只能使用ResolveToDataSet=False,
并且在客户或服务端自行设置和主表关联的关键字段的值,使用不为NULL?
这样一来,Delphi的Master/Detail结构的发处就体现不出来,而且代码量也挺大的
(要保证Master/Detail关键字一致不太容易。)
----->请关注。
2 此系统采用MTS,Delphi已安装UpdataePacked#1, ADO UP#1 ADO UP#2
MTS Module 在没安装 Updatapack之前,只能采用"不支持事务"模式,
安装上述UpdataPack以后,可采用"支持事务"模式,
但"需要事务"和"需要新事务"均不能用,一用,提交事务将出现"不能启动事务(类似)"的错误信息。
数据集采用TADODataSet/TADOTable,然道MIDAS应用在MTS中还仍要自行管理事务吗?
(曾有人提示按李维修改的Provider.pas文件做,但无效。原因是TADODataset处理事务已经有识别是否在MTS中了)
运行和开发环境:Delphi5+ADO2.5+SQL7.0+Windows2000Server
升级包:SQL7Update#2, Delphi5 Update#1 ADOExpress UP#1,Up#2
我把所有分数都拿出来了,以后还可以加,请大家帮忙。