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();
        
    } 

Reply via email to