作为 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
这真的很奇怪,因为这是微软建议的语法。有什么线索吗?