سؤال

لقد قمت بكتابة نظام نقطة بيع صغير (8-10 أجهزة كمبيوتر محمولة) يعمل عبر شبكة لاسلكية، باعتباره HTA يقرأ من/يكتب إلى Access MDB الموجود على مشاركة عبر الشبكة.
أحتاج إلى استخدام ADO - GetString وقائمة المستخدمين غير متوفرة مع DAO.
أحتاج أيضًا إلى استخدام DAO - لا يمكن ضغط MDB باستخدام ADO.

وأنا أعلم ذلك:
1) إذا كانت الواجهة الخلفية لقاعدة البيانات ليست Access MDB، فيجب علي استخدام ADO.
2) إذا كانت الواجهة الخلفية عبارة عن MDB، ولكني أرغب في الترقية إلى SQL Server في مرحلة ما، فيجب علي استخدام ADO.
3) ضمن تطبيق Access، أو أي تطبيق VBA/VB آخر، يجب أن أستخدم DAO، حيث يجب أن يمر ADO عبر طبقة ترجمة لموفر Jet OLE DB، بينما DAO أكثر مباشرة.
4) يسمح لي VBScript/JScript باستخدام DAO أو ADO.

السؤال من جزأين هو كما يلي:
1) في بيئة البرامج هذه (HTA/البرمجة النصية)، هل من الأفضل استخدام ADO بدلاً من DAO؟
2) هل يقدم ADO أي فوائد لأن HTA يقوم بالقراءة/الكتابة عبر شبكة لاسلكية؟

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

المحلول

  1. إذا كان السبب الوحيد الذي تحتاجه إلى DAO هو الضغط على قاعدة البيانات، فيمكنك استخدام DAO لذلك، واستخدم ADO لكل شيء آخر. لا تقتصر على استخدام ADO أو DAO فقط.

  2. أكبر فائدة من استخدام ADO هي أنه سيكون من الأسهل الانتقال إلى SQL Server Express عندما يأتي الوقت. يجب عليك القيام بذلك عاجلا وليس لاحقا، حيث يوفر SQL Server Express جميع فوائد قواعد بيانات MSACCESS دون العيوب. SQL Server Express مجاني، وسوف تتعامل بسهولة مع حجم النظام الذي تقترحه.

الوصول إلى قواعد البيانات الفاسدة بسهولة في بيئة متعددة المستخدمين، خاصة عند مشاركة شبكة لاسلكية. إذا كنت قلقا من فقدان فوائد العمل في MSACCESS، فلا يزال بإمكانك إرفاقها ب SQL Server باستخدام الجداول المرتبطة، والعمل مع قاعدة بيانات SQL Server Express الخاصة بك بهذه الطريقة.

نصائح أخرى

يمكنك أيضًا استخدام JRO لضغط ملف MDB الخاص بك.سيتم تضمين هذا مع أي إصدار حديث من MDAC، المثبت افتراضيًا على أنظمة XP والأنظمة الأحدث.لا يلزم تثبيت Access.

للإجابة على أسئلتك المحددة:

1) سأختار ADO فقط لأنه أحدث، ويمكن استخدام نفس واجهة برمجة التطبيقات (API) في أنواع أخرى من البرامج النصية، مثل الوصول إلى LDAP/ActiveDirectory، وقراءة مجلدات نظام الملفات، وقراءة بريد MAPI، والعمل مع أنواع أخرى من شبه- ملفات نصية منظمة مثل النص ذو العرض الثابت وCSV.هذا ليس أفضل على وجه التحديد لبيئة برمجة HTA، ولكن ربما يكون من الأفضل بالنسبة لك أن تتعلم واجهة برمجة التطبيقات (API) القابلة للتطبيق على نطاق أوسع.أعتقد أيضًا أنها واجهة برمجة تطبيقات (API) أسهل في العمل معها، لكنني بدأت بها ولم أعمل إلا لاحقًا على بعض مشاريع DAO الأقدم.

2) إحدى الفوائد المحتملة التي يوفرها ADO هي مجموعات السجلات المنفصلة، ​​والتي قد تكون لها ميزة أو على الأقل تقترح بعض البدائل المعمارية في إعداد الشبكة اللاسلكية لديك.يمكنك فتح مجموعة سجلات، ثم قطع اتصالها، بحيث يظل بإمكانك العمل مع البيانات الموجودة في الذاكرة، ولكن لا يتعين عليك ترك اتصال قاعدة البيانات مفتوحًا.ثم يمكنك في وقت لاحق إعادة الاتصال بقاعدة البيانات وتحديثها.يمكنك أيضًا العمل بأسلوب منفصل تمامًا عن طريق إدارة الجداول كملفات XML أو ADTG محلية.

قد تقوم بدفع DAO للعمل من VBScript ولكن هذا اقتران غريب.ADO هو الأكثر منطقية بشكل عام.


ميزة أخرى لـ ADO هي أنه يدعم RDS عبر DCOM أو HTTP.يمكن استخدام هذا للتغلب على العديد من القيود المفروضة على Jet MDBs المستخدمة عبر مشاركة الملفات، مثل الفساد الذي يمكن أن تؤدي إليه الشبكات والعملاء غير الموثوق بهم.كما أنه يقلل من حجم حركة المرور عبر الشبكة، مما يحسن الأداء.بالإضافة إلى ذلك، فهو يوفر طبقة متوسطة حيث يمكن لكائنات الأعمال "العيش" ويمكن التوسط في كل هذا باستخدام COM+ حيثما أمكن ذلك.

بالطبع لم يعد لديك خيار استخدام شبكة P2P بسيطة ومشاركة الملفات لاستضافة قاعدة البيانات.يحتاج RDS إلى خادم لاستضافة العملية وتشغيل محرك Jet، الذي لم يعد بحاجة إلى التشغيل على كل نظام عميل.وهذا يعني أنه يمكنك استخدام إجراءات Jet المخزنة التي يتم تشغيلها على الخادم، مما يؤدي إلى إلغاء تحميل المزيد من معالجة العميل وحركة مرور الشبكة.على الرغم من أنها ليست متطورة مثل T-SQL أو البدائل الأخرى، إلا أن تقنية ADO/Jet 4.0 OLE DB Provider الحصرية توفر فوائد ملموسة لا يمكن الحصول عليها باستخدام DAO.

يمكن لـ RDS إخفاء جزء كبير من عملية استخدام مجموعات السجلات غير المتصلة، مما يؤدي إلى تبسيط تعليمات العميل البرمجية.ويستخدم ADTG تحت الغطاء، والذي تم تطويره وتحسينه لهذا الغرض بالذات.

ومع ذلك، يتطلب استخدام RDS بنية تحتية وخبرة أكبر من مجرد مشاركة ملف بسيطة.قد تنظر أيضًا إلى إصدار منخفض من SQL Server.


بشكل عام أنصح باستخدام jetcomp.exe أداة للضغط والإصلاح عبر DAO أو JRO.ويقدم عددا من المزايا.

إذا كنت تستطيع استخدام تطبيق HTA مع Access بدلا من منصة أداء أكثر، أود أن أقول أنك يجب أن تذهب مع أسهل API لك. لن تكون عنق الزجاجة مطلقا لتجريد وصول DB في قضيتك. لا يزال، داو قديم حقا.

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