WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Arrays
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Convert SafeArray into a WIL Array

 Keywords: Convert SafeArray WIL Array Row Column Major GetRows ADO ArrayRedim

Question:

I need to convert a Safearray generated by the ADO method GetRows into a WIL Array. Can you help?

Answer:

Apparently the GetRows() method returns a multi-dimensional SAFEARRAY. It is also 'column major' where as WIL arrays are 'row major'. Here is a undebugged code sample to convert a Safe Array into WIL Array using ArrayRedim:
oADO = ObjectCreate("ADODB.Connection")

cXLS = 'C:\TEMP\Data\Duplicates.xls'
connStr = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=%cXLS%; Extended Properties=Excel 8.0;"
oADO.Open(connStr)

oRT = oADO.execute('Select * from Authors')

arrSafeArray = oRT.GetRows()

; Apparently the GetRows() method returns a multi-dimensional SAFEARRAY.
; It is also 'column major' where as WIL arrays are 'row major'
;
; Convert Safe Array into WIL Array
rcnt = ArrInfo(arrSafeArray,1)
ccnt = ArrInfo(arrSafeArray,2)
ArrayRedim(arrSafeArray,rcnt,ccnt)


MyDialogFormat=`WWWDLGED,6.2`

MyDialogCaption=`WIL Dialog 1`
MyDialogX=138
MyDialogY=141
MyDialogWidth=566
MyDialogHeight=243
MyDialogNumControls=003
MyDialogProcedure=`DEFAULT`
MyDialogFont=`DEFAULT`
MyDialogTextColor=`DEFAULT`
MyDialogBackground=`DEFAULT,DEFAULT`
MyDialogConfig=0

MyDialog001=`165,223,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",1,10,32,DEFAULT,DEFAULT,DEFAULT`
MyDialog002=`365,223,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",0,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
MyDialog003=`187,063,174,100,REPORTVIEW,"ReportView_1",arrSafeArray,DEFAULT,DEFAULT,30,DEFAULT,DEFAULT,DEFAULT,DEFAULT`

ButtonPushed=Dialog("MyDialog")

oRT = 0
oADO = 0

Article ID:   W17660
Filename:   Convert SafeArray into a WIL Array.txt
File Created: 2012:06:14:13:13:18
Last Updated: 2012:06:14:13:13:18