So here's the scenario: The current version of the
application I'm working on has a Flash 8 front end that updates a
SQL Server 2005 database with XML packets through a web service. I
am gradually replacing the Flash front end with a Flex developed
interface with which I have no trouble displaying the data.
Updating the data is another story. The architecture is based on
.NET and that is not going to change (if I could then I would), so
that is my constraint. I have briefly looked into using Flash
remoting but with Flex Data Services 2.0 I want to make sure I'm
not missing anything.
Here's a quick rundown: The current method of updating the
database detects changes on the dataset and generates an XML packet
based on the generated deltas. This packet gets sent to the web
service which is smart enough to know which tables to update.
What would be best for me would be to get deltas generated in
Flex datasets- but I have not seen anything related to this. IS
there a similar property of deltas as in the Flash component?
Ok so now that is out of the way - I would like to take
advantage of having Flex update the data source automatically when
editing a field. That seems like a great thing.
How can I do this with Flex? My best guess is to have a Java
application server running the Flex WAR application that has a SQL
driver that connects to the MS SQL database.
There's no mx:DataSet data type that has all the
functionality of .NET's DataSet but mx:ArrayCollection is not far
off. In Flex, unlike .NET, all data types support databinding
(which is cool). I'm still learning Flex myself but I suspect, if
you wanted to avoid having to use FDS on the server, if you were to
data bind your mx:DataGrid to a mx:ArrayCollection-based data model
you could subscribe to the mx:ArrayCollection's databinding events
and synchronize each row change with ADO.NET on the server via a
mx:WebService or an mx:HTTPService. Alternatively your event
handler could build a collection of the updated rows which you
could then synchronize with the server-side DataSet in one go
(which you could then do an Update() on to synchronize the changes
with the database) .