ما هي طريقة جيدة للوصول إلى ملفات DBASE باستخدام BDE و Delphi؟

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

  •  13-09-2020
  •  | 
  •  

سؤال

أولا وقبل كل شيء، يجب أن أذكر أنني جديد جديد عندما يتعلق الأمر بالدلفي، على الرغم من أنني فعلت بعض البرمجة Turbo Pascal في المدرسة، منذ أربعة عشر عاما ...

لدي برنامج دلفي تجاري يستخدم قاعدة بيانات DBASE و BDE للوصول إليها.أحتاج أساسا إلى واجهة تطبيق آخر مكتوب في C # إلى قاعدة البيانات هذه، لتكون قادرا على القيام بعمليات SQL مثل تحديد وإدخال وتحديث وحذف.

لسوء الحظ باستخدام OLEDB ضد DBASE يؤدي إلى فهارس مكسورة، يبدو أن تطبيقات BDE الأصلية فقط يمكن أن تكون قادرة على الوصول بأمان إلى البيانات.

كانت الفكرة العامة لإنشاء تطبيق بسيطة وحدة التحكم في دلفي يمكنه قراءة بيانات SQL من الإدخال القياسي (قراءة / READLN) وإخراج بيانات CSV إلى الإخراج القياسي (WRITELN).

كيف أذهب للقيام بذلك؟

لقد نجحت في الوصول إلى العمل TTable بسيط للعمل، مع التعليمة البرمجية التالية:

giveacodicetagpre.

هل هناك طريقة يمكنني تحقيق نفسها ولكن عن طريق تنفيذ عبارات SQL المباشرة بدلا من ذلك؟

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

المحلول

يمكنك القيام بنفس الشيء باستخدام مكون TQUERY:

giveacodicetagpre.

نصائح أخرى

كما كتب Serg بالفعل: يمكنك استخدام كائن TQUERY لتنفيذ استعلامات SQL على جداول DBASE.ولكن احذر: الطريقة التي تقترحها القيام بذلك - تمرير استعلام SQL إلى برنامج عبر Stdin وإرجاع النتائج على Stdout - بطيئة للغاية على Windows.

أيضا، سيتعين عليك إضافة أوامر إضافية إلى برنامجك لإرجاع البيانات في دفعات إذا كانت نتيجة الاستعلام ضخمة. من المحتمل أن يكون ذلك أسهل وسيعطيك أداء أفضل بكثير لكتابة خادم COM في Delphi استخداما من C #.

ونقطة أخيرة: لم يتم دعم BDE من قبل Borland / CodeGear / Embarcadero لعدة سنوات.لا يزال يعمل لكن يصبح أصعب وأصعب الاحتفاظ به بهذه الطريقة، خاصة مع إصدارات Windows الأحدث من XP.بديل واحد قد يكون TDBF (انظر المصدر)، لكنني لا أملك خبرة كافية في ذلك لتعطيك رأي مستنير عليه.

منذ BDE لم يتم الاحتفاظ بها منذ أن تم إهمالها قبل 10 سنوات:

هل مراعاة ميزة خادم قاعدة البيانات ؟إنه خادم يمكنه الوصول إلى DBASE، المقص وغيرها من XBASE

يعمل لطيف حقا، وهناك .NET مزود بيانات .NETمتاح لذلك .

من شأنه أن يجعل مسار الحل الخاص بك معقد أقل بكثير.

- جيروين

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