القراءة من قاعدة بيانات موجودة في مجلد ملفات البرنامج باستخدام ODBC

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

سؤال

لدينا تطبيق يخزن ملفات قاعدة البيانات الخاصة به في مجلد فرعي لدليل ملفات البرنامج. يتم إعادة توجيه هذه الملفات إلى VirtualStore في Vista و Windows 7. نحن نمثل البيانات من قاعدة البيانات باستخدام Microsoft DataReports (VB6). حتى الان جيدة جدا.

لكننا نريد الآن استخدام تقارير Crystal XI لتمثيل البيانات من قاعدة البيانات. فكرتنا هي عدم تمرير هذه البيانات إلى CR من برنامجنا ، ولكن أن تنعدمها من قاعدة البيانات باستخدام نظام AA DSN من خلال ODBC. وبهذه الطريقة ، نأمل أن نقدم لمستخدمينا مرونة أكبر في تصميم تقاريرهم الخاصة. ما نريد ضمانه هو أنه يتم تكوين DSNs للنظام بشكل صحيح عندما يقوم المستخدم بتثبيت برنامجنا أو عندما يقوم البرنامج باستدعاء تقرير Crystal.

هل هناك طريقة ذكية للقيام بذلك باستخدام متغيرات النظام على سبيل المثال ، بدلاً من الاضطرار إلى كتابة روتين يتحقق من نسخ نظام التشغيل ، ما إذا كان UAC قد تم تمكينه على نظام التشغيل ، سواء تم رفع قيود الكتابة على مجلد ملفات البرنامج ، إلخ ثم يتكيف مع نظام DSN للإشارة إلى إما C: Program Files OurApp Data ، أو C: Users user AppData VirtualStore Program Files OurApp Data Volder؟

اقتراحات لنهج مختلف تمامًا مرحب بها أيضًا!

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

المحلول 3

يبدو أن المتجر الظاهري يعتني بكل شيء ، بحيث يمكنك توجيه DSN بشكل صارخ على ملفات C: Program myapp data mydb.mdb حتى أثناء نقل قاعدة البيانات إلى المتجر الظاهري.

نصائح أخرى

يجب أن يكون للتطبيقات الجديدة بيان تطبيق يحدد TermerExecutionLevel. هذا يعلن برنامجك "Vista Aware" ويتجاوز محاولات المحاكاة الافتراضية.

أثناء التثبيت ، يجب عليك إنشاء مجلد مثل [commonappdata] Company App Full وتعيين الأمان على هذا المجلد للسماح بالوصول الكامل من قبل الجميع (أو من قبل المستخدمين). ضع قاعدة البيانات الخاصة بك في هذا المجلد.

بالنسبة إلى MDB ، يمكنك إسقاط قاعدة البيانات هنا. للحصول على قاعدة بيانات العميل/الخادم ضع ملف ملف UDL هنا. انظر أيضا استخدم ملفات ارتباط البيانات الشامل (.udl).

ODBC و DSNs هي تقنيات عفا عليها الزمن.

يجب أن يعمل استخدام الأساليب المقترحة لأي شيء تقريبًا سوى أقدم كمبيوتر Win95.

هل هذه قاعدة بيانات وصول؟ لم تحدد.

للحصول على قاعدة بيانات للوصول ، لا تحتاج إلى توجيه DSN إلى قاعدة بيانات معينة عند تثبيتها. يمكنك تعديل سلسلة الاتصال للإشارة إلى قواعد بيانات مختلفة في وقت التشغيل (تفاصيل). على سبيل المثال

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

هل يمكنك ببساطة قراءة مسار التثبيت في وقت التشغيل (في VB6 هو App.Path) ثم أرسل سلسلة اتصال مختلفة إلى تقارير كريستال؟

النسخة الحالية


قد ترغب في اكتشاف النسخ الحالي للنوافذ النظام يعمل.

هذا بدوره سيساعدك في تحديد المسار الصحيح.

كيفية العثور على أرقام إصدار Windows و Build and Revision ؟؟

اقرأ مفاتيح التسجيل -

hkey_local_machine software microsoft windows nt currentversion currentBuildNumber
hkey_local_machine software microsoft windows nt currentversion currentVersion
hkey_local_machine software microsoft windows nt currentversion editionId
hkey_local_machine software microsoft windows nt currentversion productID hkey_local_machine software microsoft windows nt currentversion buildlabex

CurrentBuildNumber هو رقم بناء Windows الخاص بك. بعد ذلك ، فإن Value Value هي إصدار Windows الخاص بك ، أي إصدار Windows 7 و Windows Vista و Windows XP ، إلخ. EditionId و ProductId لمعرفة Windows-Edition ومعرف المنتج.

يحتوي Key BuildLabex على رقم البناء ورقم المراجعة.

على سبيل المثال ، في القيمة 6001.17387.x86fre.vistasp1_gdr.070927-1921 ،
الأرقام الأربعة الأولى تقف على رقم البناء أي 6001 و
الأرقام الخمسة التالية تقف على رقم مراجعة Windows IE 17387.
يخبرك x86 أنك تقوم بتشغيل نظام تشغيل 32 بت.

قد تكون مهتمًا أيضًا بهذا:
كيفية اكتشاف إصدار Windows الحقيقي؟

حظا طيبا وفقك الله!!

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