I use the code shown below to update a progressBar, while updating a
MS SQL 2005 database from an arraytCollection. It works fine but it
seems really slow. Is there a more efficient way to do this please?
code (Flex 2.01):
private var queryCounter:Number = 0;
private function runQueryLoop():void
{
activeProgress.setProgress(queryCounter, activeProductsArray.length)
callLater(runQuery);
}
private function runQuery():void
{
if(queryCounter < activeProductsArray.length)
{
try
{
var activeSql:String = "UPDATE products SET rrp = " +
activeProductsArray.getItemAt(x).rrp + ", notes = '" +
escapeSql(activeProductsArray.getItemAt(x).notes) + "' WHERE ( code =
'" + escapeSql(activeProductsArray.getItemAt(x).code) + "' )";
var activeArrayResult:ArrayCollection = new
ArrayCollection(mySQLServer.executeQuery(activeSql));
}
catch (e:SSPError)
{
errorMessage =
e.message;
errorType = e.name;
errorCode =
e.errorID.toString();
Alert.show(
"Error Message: "
+ errorMessage +
"\n"
+ errorType +
"\n"
+ errorCode,
'Saving active codes
price error:', 0, this, null,
saveErrorIcon
);
CursorManager.removeBusyCursor();
}
queryCounter ++;
runQueryLoop();
}