here:   I asked @faustf  If he want to make a wrapper function to make this UDF easier. So I make it easier (look in attachment for ADO_API.au3). Here is example: #include-once #Tidy_Parameters=/sort_funcs /reel #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7 #include "ADO_API.au3" _Example() Func _Example() Local $sDriver = 'SQL Server' Local $sDatabase = 'BaseName' Local $sServer = 'localhost\SQLExpress' Local $sUser = 'xxxxx' Local $sPassword = 'xxxxx' ; SetUP internal ADO.au3 UDF COMError Handler _ADO_ComErrorHandler_UserFunction(_ADO_COMErrorHandler) ; first you must SetUp Connection String _ADO_API_ConnectionString('DRIVER={' & $sDriver & '};SERVER=' & $sServer & ';DATABASE=' & $sDatabase & ';UID=' & $sUser & ';PWD=' & $sPassword & ';') ; now to execute query you should only do a "ONE LINER" to get ArrayOfArray :) Local $aResult_1 = _ADO_API('select * from [BaseName2].dbo.[Table21]') ; or to get standard array you can execute query with this "ONE LINER" :) Local $aResult_2 = _ADO_API2('select * from [BaseName3].dbo.[Table35]') ; if you want to show the result you should use ADO.au3 function _ADO_Recordset_Display($aResult_1,'$aResult_1') ; or normal _ArrayDisplay _ArrayDisplay($aResult_2,'Inner $aResult_2') EndFunc   ADO_API.ZIP