Будучи новичком в FoxPro (но раньше он работал в Clipper), я немного затрудняюсь понять, как вернуть массив из следующего класса OLEPUBLIC. edit : я изменил код, чтобы учесть замечания, сделанные @Stuart ниже.
DEFINE CLASS db AS CUSTOM OLEPUBLIC
DIMENSION ada(1) && public scope for later return
FUNCTION opendb( cpName )
SET MULTILOCKS ON
USE (cpName) EXCLUSIVE NOUPDATE
= CURSORSETPROP("Buffering",5)
RETURN ALIAS()
ENDFUNC
&& etc
FUNCTION getrecord( sAlias, nRecno )
SELECT (sAlias)
GOTO (nRecno)
fc = FCOUNT()
DIMENSION this.ada(fc)
FOR i = 1 TO fc
STORE CURVAL(FIELD(i)) to THIS.ada(i)
ENDFOR
RETURN @THIS.ada
ENDFUNC
ENDDEFINE
Учитывая следующий бит VBScript, я могу нормально открыть файл. Кажется, я не могу получить ничего более полезного, чем сообщение об ошибке.
set sp = createobject("sloop.db")
al = sp.opendb("p:\testing\sloop\patient.dbf")
wscript.echo sp.getrecord(al,1)
Это сообщение об ошибке:
c: \ temp \ foo.vbs (3, 1) sloop.db sloop.db: .getrecord p: \ testing \ sloop \ sloop.prg Ошибка в строке 41 Ошибка синтаксиса. 200
Строка 41, как выясняется, это
RETURN @THIS.ada
, что действительно странно, так как это синтаксис, который предлагает Microsoft. Любые подсказки?