Run a Stored Procedure with ADO

By | 2019-10-04

Sometimes you have stored proc that takes 2,3 or 5 min to execute. Application that lock up frequently frustrates users and waste their time and resources.

Solution use ADO ASYNCHROUS OPTION to get back CPU resorces.

Public Sub ExecuteAsync()
    Dim cmd As ADODB.Command
    
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = "DSN=test"
    cmd.CommandTimeout = 180
    cmd.CommandText = "sp_name"
    cmd.CommandType = adCmdStoredProc
    cmd.EXECUTE , , adAsyncExecute '<--- start ASYNCHROUS
    'You can also make a dumy progress bar to show proggres
    
    Do While (cmd.State And adStateExecuting) = adStateExecuting
     DoEvents
    Loop
    
    'Methods Options
    'EXECUTE adAsyncExecute, adAsyncFetch
    'OPEN adAsyncConnect
    
    'You can do same this with RDO
    
    'Do While rs.StillExecuting
    '    DoEvents
    'Loop
End Sub

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.