Flash Builder 4.6 によって自動生成される標準の createOrders 関数を使用しています。1回の使用で見事に機能します。コードは次のとおりです。
protected function okButton_clickHandler():void
{
var orders2:Orders = new Orders();
//setting values
createOrdersResult.token = ordersService.createOrders(orders2);
ordersService.commit();
}
同じボタンが2回クリックされ、その結果として okButton_clickHandler が起動されると、データがデータベースに挿入されません。trace("saved");で結果ハンドラーを追加しました。私が見たのは、最初のクリックでは「保存済み」と書かれていましたが、2番目ではありませんでした。
また、 Charlesを使用して、リクエストが 2 回目に送信されているかどうかを確認しました。いいえ、そうではありません。
編集 自動生成フォームを生成しようとしました。commit(); を追加するだけで済みました。else リクエストが送信されないためです。ここに保存の問題があります — リクエストは最初のボタンクリックでのみ送信されます。
EDIT 2 したがって、すべての問題は、実際には ordersService.createOrders(orders2); です。一度だけ動作します。私がしようとすると
createOrdersResult.token = ordersService.createOrders(orders2);
ordersService.commit();
createOrdersResult.token = ordersService.createOrders(orders2);
ordersService.commit();
OR
createOrdersResult.token = ordersService.createOrders(orders2);
createOrdersResult.token = ordersService.createOrders(orders2);
ordersService.commit();
データベースに追加される行は 1 つだけです。何か案は?