سؤال

بصفتي مبتدئًا لـ Foxpro (ولكن على اليد القديمة في Clipper) ، فأنا في حيرة لمعرفة كيفية إعادة صفيف من فئة Olepublic التالية. تعديل: لقد قمت بتعديل الكود Belw لأخذ في الاعتبار الملاحظات التي أدلى بها @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 error in line 41 syntax error. 200

السطر 41 ، كما اتضح ، هو

      RETURN @THIS.ada

وهو أمر غريب حقًا لأن هذا بناء الجملة الذي تقترحه Microsoft. أي أدلة؟

هل كانت مفيدة؟

المحلول

جرب "Return adda" ، لكن صفائف VFP لم تلعب بشكل جيد مع لغات أخرى على الرغم من ذلك محاولات لجعلهم يفعلون ذلك.

نصائح أخرى

(متأخرة 5 سنوات ، ولكن ربما لا تزال مفيدة لشخص ما ...)

يتمثل الخيار الأفضل في وجود رمز VFP الخاص بك إنشاء كائن مجموعة بدلاً من ذلك ، ثم تحليل الصفيف وإضافة جميع العناصر إلى المجموعة (باستخدام طريقة .add ()). ثم يمكنك تمرير كائن المجموعة إلى VB ، والذي يسعده أن يلعب معه.

يعمل الرمز المنقح الخاص بك بالنسبة لي في VFP9SP2 - اضطررت إلى الإنشاء كإحضار ولكن تمكنت من الوصول إلى البيانات من VBScript.

كان هذا رمز vbscript الخاص بي:

set sp = createobject("stack1.db") ' Different project name
al = sp.opendb("C:\WORK\VFP\DATABASES\DATA\DATA.DBF")
arrData = sp.getrecord(al,1)
msgbox(arrData(1))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top