1

編集可能なデータグリッドがあり、すべての編集が完了した後、データベースに挿入するために CFC 経由でデータベースに送り返す必要があります。配列コレクションを cfdump にダンプすると、アイテムと構造を含む配列があることがわかりますが、それぞれを「ループ」して DB に挿入する方法がわかりません。

実際に機能することはほとんど書かれていないようです! MXML と CFC を以下に示しますが、「クラス coldfusion.runtime.Array 型のスカラー変数をメンバーを持つ構造体として逆参照しようとしました」というエラーが表示されます。-いいですね

すべての助けに感謝します-ありがとう

[Bindable]
private var getconsent:ArrayCollection = new ArrayCollection([
{LocationName:'Service A', Contact: 'Bob Jones' },  
{LocationName:'Service B', Contact: 'Jane Smith' },
{LocationName:'Service c', Contact: 'Doug Johnson' },   
{LocationName:'Service d', Contact: 'John Jackson'}   
]);  

public function send():void {  
cfdata.sendData(getconsent.source);  
}  

public function send_Result(event:ResultEvent):void {  
Alert.show('ok'); 
}  

public function send_Fault(event:FaultEvent):void {  
Alert.show(event.fault.message);  
} 

]]>  
</mx:Script>  

<mx:RemoteObject 
id="cfdata" 
showBusyCursor="true" 
destination="ColdFusion"  
source="buildtest.test2">  

<mx:method name="sendData" result="send_Result(event)" fault="send_Fault(event)" />  
</mx:RemoteObject>  

<mx:DataGrid id="myGrid" 
dataProvider="{getconsent}" editable="true" > 
<mx:columns>
<mx:DataGridColumn dataField="LocationName" width="150"
editable="false"/>

<mx:DataGridColumn dataField="Contact" width="150" /> 

</mx:columns> 
</mx:DataGrid> 
<mx:Button label="Update DB" click="send()"/>


<cfcomponent displayname="sendData" output="false" >  
    <cffunction name="sendData" access="remote"  output="no" returnType="void"          required="yes" >  

        <cfargument name="getconsent" type="any" required="true">  

        <cfloop from="1" to="#ArrayLen(getconsent.dataprovider)#" index="i">  

            <cfquery name="clientconsent" datasource="gvr">  

                INSERT INTO ClientConsent"
                        (Location)
                VALUES
                ('#getconsent.dataprovider.LocationName[i]#')

            </cfquery>
        </cfloop>
    </cffunction>

</cfcomponent>

配列 1 構造体 Bob Jones に連絡してください
LocationName Service A
mx_internal_uid 807D204F-A315-7D78-C745-BAD78087CB28

 2 struct 
 Contact        Jane Smith  
 LocationName   Service B  
 mx_internal_uid    EAA43EF4-A7EA-82C9-5F3C-BAD780D7FD6F  

 3 struct 
 Contact        Doug Johnson  
 LocationName   Service c  
 mx_internal_uid    9768D6D2-8F97-5F4D-767C-BAD780D7B478 
4

3 に答える 3

2

CF9 を使用している場合は、Flex 4 で DCD を試してください: http://ria.dzone.com/articles/flash-remoting-and-coldfusion

Flex 3 で CF8 を使用している場合は、LCDS を試してください: http://www.adobe.com/devnet/coldfusion/articles/data_app.html

于 2009-11-03T21:29:29.640 に答える
0

こんにちは、Adam に感謝します

<cfquery name="clientconsent" datasource="gvr">
INSERT INTO dbo.ClientConsent
(Location, ClientAppointments, ClientDemographics)
VALUES(
      #qresult#
)
</cfquery>
于 2009-11-09T14:40:43.580 に答える
0

構造体の配列ではなく、クエリ オブジェクトを使用する方が簡単でしょうか? Flex アプリケーションから返された後、CF でArrayCollection をクエリ [ ArrayCollectionToQuery ]に変換する UDF を作成しました。

于 2009-11-05T16:06:25.300 に答える