سؤال

لدي مشروع الآن حيث أود أن أكون قادرًا على سحب صفوف من قاعدة بيانات Access التي يستخدمها منتج جهة خارجية لتخزين معلوماته.من المحتمل أن يكون هناك عدد صغير من المستخدمين الذين يصلون إلى قاعدة البيانات هذه في نفس الوقت الذي تقوم فيه عملية "التصدير"، لذلك أنا قلق قليلاً بشأن سلامة البيانات والوصول المتزامن.

هل من المحتمل أن أواجه مشكلات في عملية استيراد .NET الخاصة بي (باستخدام LINQ/ADO.NET/؟) عندما تحاول سحب البيانات من MDB في نفس الوقت الذي يقوم فيه شخص آخر بحفظ صف؟كيف يعمل قفل Access؟

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

المحلول

لا ينبغي أن تكون هناك مشكلة.يمكن أن تحدث المشاكل فقط في عمليات الكتابة المتزامنة.القفل من MS Access بناءً على تأمين الملف في ملف ldb.تحدث عمليات التأمين على الصفحات فقط وليس على الملف بالكامل.نظرًا لأن الأقفال موجودة في ملف ldb وليست في ملف mdb فلا توجد مشاكل في القراءة المتوازية.

نصائح أخرى

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

عند فتح قاعدة البيانات، لا تحاول فتحها في وضع القراءة فقط (على الرغم من أنك قد تعتقد أن ذلك منطقي).عندما تكون المستخدم الأول، يفتح Access ملف mdb في وضع القراءة فقط ولا يقوم بإنشاء ldb، مما يفرض على كافة المستخدمين اللاحقين أن يكونوا في وضع القراءة فقط أيضًا.

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