Как новичок в FoxPro (но старая рука в Clipper), я немного не понимаю, как вернуть массив из следующего класса OLEPUBLIC. Редактировать: Я изменил код belw, чтобы принять во внимание замечания, сделанные @Stuart ниже.Как вернуть массив из класса OLEPUBLIC Visual FoxPro 9?
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 р: \ тестирование \ шлюп \ шлюп. prg Ошибка в строке 41 Синтаксическая ошибка. 200
линия 41, как выясняется, является
RETURN @THIS.ada
, который на самом деле странно, как это синтаксис, который предлагает Microsoft. Любые подсказки?
Я только что понял, что я все еще использую VFP6. Это была моя старая машина, которая была v9. Embarrassment ++ – bugmagnet