ما مدى سهولة تحويل تطبيق من Visual FoxPro 6 إلى Visual FoxPro 9؟

StackOverflow https://stackoverflow.com/questions/2417817

  •  19-09-2019
  •  | 
  •  

سؤال

هل هناك أي مشاكل في تحويل تطبيق Visual FoxPro 6 إلى Visual FoxPro 9؛ أم أن هذا على التوالي إلى الأمام؟

أي gotchas يجب أن أشاهدها خلال هذه العملية؟

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

المحلول

نعم ... اعتمادا على مجموعة متنوعة من العناصر في مشروعك. لدي حاليا تطبيقات في كل من VFP9 SP1، و VFP9 SP2 (مع الإبلاغ عن الإبلاغ)

بعض المشكلات للمساعدة في التشغيل تحت VFP9 مع استفسارات SQL تنسيق أقدم

قم بتعيين سلوك المحرك 70 ربما ترغب في البقاء مع 70. بعض التحسينات في 8 و 9 فرض خدعة رائعة تم استخدامها في الاستئصال المبكر في المجموعة الكولية من قبل البنود ... فقط المجموعة من الأعمدة القليلة التي تهتم بها، خاصة عندما إن الانضمام إلى جدول بحث كنت تعرفه دائما نفس القيمة على أي حال. في 8 و 9، يتطلب منك تأهيل المجموعة من خلال جميع الوظائف غير المجمعة ... في مثل هذه الحالة، قد تضطر إلى تغيير هذه الأعمدة "الثابتة" إلى Max (inferfield). لن يتغير الحد الأقصى أبدا إذا كان مجموعتك استنادا إلى مفتاح الهوية على أي حال.

كانت القضايا الأخرى المعروفة من الاستعلام مع Select Sum (). إذا قمت باستعلام، فلم تكن هناك سجلات مطابقة للاستعلام، فسيظهر العمود Sum () كافية، وستحصل على نوع بيانات غير متوقع عندما كنت تأمل في عدد. كان أحد التقاط سريع واحد لإضافة عدد (*) كأمارسيكورد التي ستظهر دائما عددا دائما. ثم، يمكنك التحقق مما إذا كانت "النتيجة" = 0 "تفعل شيئا لإخطار المستخدم بإحباط تقرير، أيا كان ذلك، باستمرار.

من الواضح أن التقارير معززة من 6 ولديها بعض الميزات الجيدة حقا، وخاصة مناطق تقارير الطاولة المرتبطة بالمتلاتيب دون الحاجة إلى القيام "الطباعة عند" وتداخل عناصر التحكم في ظروف معينة. هذا رائع للجداول متعددة المرتبطة التي تريدها في تقرير نهائي.

تحديث واحد على مجموعة SQL Sum () حسب المشكلة. لقد وجدت أنه إذا قمت بذلك

حدد NVL (SUM (أيا كان)، 0) كأداة صلصلة، إذا قمت بتشغيل مبلغ بدون سجلات مؤهلة، فسوف يأخذ NVL () هذه القيمة الخالية وإجبارها على الصفر وبالتالي تمنع المشكلات الخالية اللاحقة ... وبالمثل، وبالمثل، تنطبق على أشياء مثل Min ()، Max ()، AVG ()، إلخ.

تلك هي مجرد بعض من الكبيرة التي تتوال في وجهي ...

نصائح أخرى

أود أن أقول أنه غير مؤلم إلى حد ما بشكل عام. كما ذكرنا DRAPP، ستحتاج إلى مراجعة أي عبارات SQL-Select لوزن إيجابيات وسلبيات المجموعة المعدلة حسب البنود، أو إذا كان من الأسهل استخدام مجموعة المحرك المحرك. يمكن إجراء إعداد التقارير مثل VFP6 باستخدام مجموعة reportbehaviour.

أيضا VFP9 يقوم بتحقيق بعض بنية الجدول عند فتح DBF لا vfp6 لا. نتيجة لذلك، قد تجد أن فتح ملفات DBF في VFP9 ستخبط خطأ 2065 لأن عدد سجل الرأس لا يساوي عدد السجلات الفعلي، في حين أنهم سيعملون بشكل جيد في الإصدار السابق. يمكن التحكم في هذا السلوك مع الأمر Set TableValidate.

لقد تعاملت مع مشاكل تطبيق VFP 6 هذا الأسبوع وكانت محبطين مثل هيك لأن المشاكل يمكن معالجتها بسهولة مع VFP 9 المزود بحزمة الخدمة SP2.

شيء آخر يجب أن تكون حذرا عليه هو إذا تم الوصول إلى بياناتك بواسطة برنامج تشغيل VFP 6 ODBC. إذا كنت تستخدم أي من ميزات قاعدة البيانات الجديدة التي تم تنفيذها في VFP 7 إلى VFP 9 مثل أحداث قاعدة البيانات، أو سيتم تحويل أنواع البيانات الجديدة مثل Varchar بيانات البيانات الخاصة بك إلى تنسيق لا يمكنه تشغيل برنامج تشغيل ODBC. يتم استخدام برنامج تشغيل VFP OLE DB الجديد بدلا من ذلك، ولا يمكن بعض الأدوات معالجة وظائف OLE DB.

ستجد طريقة مصممة التقرير الجديد أكثر قوة، ولكن GDI + المستخدم في تقديم سيتطلب بعض حجم الحقل تغيير التقارير للتخلص من النجوم الفائضة. يمكنك تجنب ذلك باستخدام إعداد Reportbehavior كما يلاحظ آلان، لكنك ستستفيد من الاستفادة من قدرة معاينة التقرير.

شيء آخر قد تحصل على حرقه هو الحضورات () يخلق المزيد من العناصر في الصفيف. لذلك قد تضطر إلى تعديل بعض التعليمات البرمجية للتعامل مع الصفوف الإضافية الموجودة في الصفيف التي تم إنشاؤها.

إذا واجهت أي مشاكل، يرجى المشاركة هنا وسنساعدك في الخروج.

rick schummer.

الكثير من الإجابات الجيدة هنا بالفعل. بعد تحويل تطبيق VFP6 مؤخرا، أود أن أقول إن العملية كانت غير مؤلمة نسبيا، خاصة بالنسبة للفائدة التي تأتي من استخدام محرر VFP9، إلخ.

عنصر واحد غير مدبب ... تحقق من كل التقارير الخاصة بك، وتأكد من إيقاف تشغيل خيار تقرير تقرير "حفظ بيئة الطابعة"، ما لم تكن الطابعة مدرجة هناك حقا الشخص الذي تريد ترميزه بجد في ملفات التقرير.

لقد واجهت بعض القضايا ترقية مصدرنا إلى VFP9. معظمهم بسيطة إلى حد ما، رغم ذلك.

أول شيء تحتاج إلى القيام به هو مراجعة الوثائق الجديدة ل VFP7 و VFP8 و VFP9. أعلم أن هذا يبدو وكأنه ألم، ولكن يجب أن يكون توقفك الأول عند ترقية مشروع. يمكن العثور على وثائق VFP6 وما فوق MSDN..

تمت إضافة العديد من الخصائص والأساليب الجديدة إلى الفصول الدراسية. إذا كان أحد هذه الصراعات مع خصائص / طرق مخصصة، فسوف تعمل في أخطاء.

أيضا، سوف تحتاج إلى أن تصبح على علم متطلبات فيستا UAC. و كيف يمكن التعامل معهم. وبعد يتم تنفيذ البرامج التي تم تجميعها مع VFP8 أو أدناه في وضع "التوافق". مع تجميع برامج VFP9 مع بيان تطبيقات VISTA، مما يعني أن RequireDedExECECELVEL في بيان التطبيق مضبوط على ASInvoKer. لا تتضمن VFP8 وتحدو أدناه هذا في البيان (أو لا تتضمن بيانا على الإطلاق)، وبالتالي وضع التوافق.

هذا يعني أنه عند تشغيل البرنامج على نظام Vista، ستفشل عدة أشياء أو تسبب أخطاء.

  1. ستفشل محاولة الكتابة إلى HKEY_LOCAL_MACHINE في التسجيل.
  2. محاولة كتابة ملف إلى٪ programfiles٪ أو أي مجلد محمي سيؤدي إلى إنشاء خطأ. يجب أن تكتب البرامج فقط مجلدات مشتركة.

لديك خيار تحديث بيان التطبيق, ، لكنني لن أوصي بالضرورة، ما لم يكن برنامجك يتطلب الامتيازات الإدارية تماما.

أخيرا، هناك عدد من عدم توافق فيستا - بعض التعامل على وجه التحديد مع ايرو - تم إصلاحها مع VFP9 SP2. لذلك، إذا كنت ستستخدم VFP9، فتأكد من استخدام خدمة Service Pack 2.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top