FoxPro の初心者 (しかし Clipper のベテラン) として、次の OLEPUBLIC クラスから配列を返す方法を理解するのに少し途方に暮れています。編集:以下の@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
これはマイクロソフトが提案する構文であるため、非常に奇妙です。手がかりはありますか?