DataStore在flex中 [英] DataStore in flex
问题描述
我在程序中遇到问题...请指教我什么是正确的
这是我编程的错误代码
mx.data::Conflict {
cause = mx.data.messages :: DataMessage {
body = [[lessonidid ],
{
lessonid = 17
lessonplanid = 1
status =active
studentid = 4
},
valueObjects :: Lessonplan {
lessonid = 18
lessonplanid = 1
status =active
studentid = 4
}]
clientId = null
correlationId =
destination =lessonplanRPCDataManager
headers = {
newReferencedIds = null
prevReferencedIds = null
}
identity = {
lessonplanid = 1
}
messageId =28DEF63D-9002-787E-188A-67DFD27407F8
operation = 3
timestamp = 0
timeToLive = 0
}
generatedByLocalCommit = false
clientObject = valueObjects :: Lessonplan {
lessonid = 18
lessonplanid = 1
status =active
studentid = 4
}
destination =lessonplanRPCDataManager
errorID = 0
message =本地项目发生了与远程更改冲突的属性更改。
name =Error
originalObject = {
lessonid = 17
lessonplanid = 1
status =active
studentid = 4
}
propertyNames = [lessonid]
resolved = false
serverObject = lessonplanid = 1
serverObjectDeleted = false
serverObjectReferencedIds = {
}
}
at mx.data::DataStore/http://www.adobe.com/2006/flex/mx/internal::processConflict()[C:\depot\DataServices\branches\ lcds_modeler101\frameworks\projects\data\src\mx\data\DataStore.as:3428]
at mx.data::ConcreteDataService/http://www.adobe.com/2006 /flex/mx/internal::updateCache()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\ConcreteDataService.as: 5468]
在mx.data::ConcreteDataService/http://www.adobe.com/2006/flex/mx/internal::updateCacheWithId()[C:\depot\DataServices\\ $ \\ $ b在mx.data::DataList/http://www.adobe.com。 COM / 2006 /柔性/ MX /内部:: processSequence()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataList .as:2582]
at mx.data::DataList/http://www.adobe.com/2006/flex/mx/internal::processSequenceResult()[C:\depot\DataServices\ $ \\ $ b在mx.data::DataListRequestResponder/result()[C:\ depot \DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataListRequestResponder.as:132]
at mx.data::RPCDataServiceAdapter/sendResultEvent( )[C:\depot\DataServices\branches\lcds_modeler101\fram eworks \projects\data\src\mx\data\RPCDataServiceAdapter.as:1508]
at mx.data::RPCDataServiceAdapter/executeQueryResult()[C:\depot\DataServices\ branches \lcds_modeler101\frameworks\projects\data\src\mx\data\RPCDataServiceAdapter.as:1444]
在mx.collections :: ItemResponder / result()[E:\ dev \ 4.0.0\frameworks\projects\framework\src\mx\collections\ItemResponder.as:129]
在mx.rpc :: AsyncToken / http:// www。 adobe.com/2006/flex/mx/internal::applyResult()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AsyncToken.as :239]
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()[E:\dev\4.0.0 \frameworks\projects\rpc\src\mx\rpc\events\ResultEvent.as:207]
在mx.rpc :: AbstractOperation / http://www.adobe.com / 20 06 / flex / mx / internal :: dispatchRpcEvent()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AbstractOperation.as:244]
在mx.rpc :: AbstractInvoker / http://www.adobe.com/2006/flex/mx/internal :: resultHandler()[E:\dev\4.0.0\frameworks\projects \rpc\src\mx\rpc\AbstractInvoker.as:318]
在mx.rpc :: Responder / result()[E:\dev\4.0.0\frameworks\\ \\projects\rpc\src\mx\rpc\Responder.as:56)
在mx.rpc :: AsyncRequest / acknowledge()[E:\dev\4.0.0\ frameworks \projects\rpc\src\mx\rpc\AsyncRequest.as:84]
at NetConnectionMessageResponder / resultHandler()[E:\dev\4.0.0\frameworks\ projects \rpc\src\mx\messaging\channels\NetConnectionChannel.as:547]
在mx.messaging :: MessageResponder / result()[E:\dev\4.0.0 \frameworks\projects\rpc\ src\mx\messaging\MessageResponder.as:235]
Flex文档说,类型冲突的错误是
在检测到冲突时调度
在
客户机上的未决更改与
提交另一个客户端的更改,或者当由此客户端提交的
更改检测到远程
目标处的
a冲突错误时。
您必须自己找出解决方案(这不是由Flex引起的,而是由您要提交的数据引起的)。
本地项目对属性
的更改与远程更改发生冲突
听起来像你有某种验证失败,因为
c lientObject = valueObjects :: Lessonplan {
lessonid = 18
lessonplanid = 1
status =active
studentid = 4}
和
originalObject = {
lessonid = 17
lessonplanid = 1
status =active
studentid = 4
}
不兼容。我认为不允许改变leessid。
I am having problems in my program... Please advice me of what is right
this is the error code of my prog
mx.data::Conflict {
cause = mx.data.messages::DataMessage {
body = [["lessonid"],
{
lessonid = 17
lessonplanid = 1
status = "active"
studentid = 4
},
valueObjects::Lessonplan {
lessonid = 18
lessonplanid = 1
status = "active"
studentid = 4
}]
clientId = null
correlationId = ""
destination = "lessonplanRPCDataManager"
headers = {
newReferencedIds = null
prevReferencedIds = null
}
identity = {
lessonplanid = 1
}
messageId = "28DEF63D-9002-787E-188A-67DFD27407F8"
operation = 3
timestamp = 0
timeToLive = 0
}
causedByLocalCommit = false
clientObject = valueObjects::Lessonplan {
lessonid = 18
lessonplanid = 1
status = "active"
studentid = 4
}
destination = "lessonplanRPCDataManager"
errorID = 0
message = "Local item has changes to properties that conflict with remote change."
name = "Error"
originalObject = {
lessonid = 17
lessonplanid = 1
status = "active"
studentid = 4
}
propertyNames = ["lessonid"]
resolved = false
serverObject = lessonplanid=1
serverObjectDeleted = false
serverObjectReferencedIds = {
}
}
at mx.data::DataStore/http://www.adobe.com/2006/flex/mx/internal::processConflict()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataStore.as:3428]
at mx.data::ConcreteDataService/http://www.adobe.com/2006/flex/mx/internal::updateCache()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\ConcreteDataService.as:5468]
at mx.data::ConcreteDataService/http://www.adobe.com/2006/flex/mx/internal::updateCacheWithId()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\ConcreteDataService.as:5316]
at mx.data::DataList/http://www.adobe.com/2006/flex/mx/internal::processSequence()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataList.as:2582]
at mx.data::DataList/http://www.adobe.com/2006/flex/mx/internal::processSequenceResult()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataList.as:2880]
at mx.data::DataListRequestResponder/result()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\DataListRequestResponder.as:132]
at mx.data::RPCDataServiceAdapter/sendResultEvent()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\RPCDataServiceAdapter.as:1508]
at mx.data::RPCDataServiceAdapter/executeQueryResult()[C:\depot\DataServices\branches\lcds_modeler101\frameworks\projects\data\src\mx\data\RPCDataServiceAdapter.as:1444]
at mx.collections::ItemResponder/result()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\collections\ItemResponder.as:129]
at mx.rpc::AsyncToken/http://www.adobe.com/2006/flex/mx/internal::applyResult()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AsyncToken.as:239]
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\events\ResultEvent.as:207]
at mx.rpc::AbstractOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AbstractOperation.as:244]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:318]
at mx.rpc::Responder/result()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:56]
at mx.rpc::AsyncRequest/acknowledge()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:84]
at NetConnectionMessageResponder/resultHandler()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:547]
at mx.messaging::MessageResponder/result()[E:\dev\4.0.0\frameworks\projects\rpc\src\mx\messaging\MessageResponder.as:235]
The Flex documentation says, an error of type conflict is
Dispatched when a conflict is detected between either pending changes on this client and changes submitted by another client, or when changes submitted by this client result detect a conflict error at the remote destination.
You will have to figure the solution out yourself (it is not something caused by Flex, but by the data you want to commit).
Local item has changes to properties that conflict with remote change.
sounds to me like you have some kind of verification failure, because
clientObject = valueObjects::Lessonplan {
lessonid = 18
lessonplanid = 1
status = "active"
studentid = 4 }
and
originalObject = {
lessonid = 17
lessonplanid = 1
status = "active"
studentid = 4
}
are incompatible. I suppose changing the lessionid is not allowed.
这篇关于DataStore在flex中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!