سؤال

لدي مشكلة في هذه اللحظة أين متعددة (نفس المخطط) access 2003 يتم استخدام قواعد البيانات على أجهزة الكمبيوتر المحمولة.

كنت بحاجة إلى العثور على طريقة تلقائية لمزامنة البيانات إلى مركز بيانات access.

البيانات على أجهزة الكمبيوتر المحمولة فقط إلحاق حتى تحديث/حذف / العمليات لن يكون مشكلة.

الأدوات التي سوف تسمح لي أن أفعل ذلك بسهولة ؟ ما هي العوامل التي تؤثر على اتخاذ قرار بشأن أفضل أداة أو الحل ؟

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

المحلول

ومن الممكن استخدام النسخ جيت في صلب الوصول، ولكنني لن يحذرك، فمن قشاري جدا. فإنه سيتم أيضا خبط PK الخاص بك على أي الجداول التي تفعل ذلك لأنه يختار الأعداد الصحيحة وقعت عشوائية في محاولة لتجنب الاصطدامات الرئيسية، لذلك قد ينتهي بك الأمر مع -1243482392912 ك PK المقبل على سجل معين. هذا هو PITA لكتابة إذا كنت تفعل أي نوع من البحث على ذلك (مثل هوية العميل ورقم الطلب، الخ) لا يمكنك أتمتة تزامن وصول (ربما تستطيع ولكن لا يزال شيئا وهمية مثل ذلك باستخدام VBA. ، لن يتم تشغيل هذا عند فتح قاعدة البيانات).

<القوي> الطريقة أوصي هو استخدام SQL Server 2005/2008 على جهاز قاعدة بيانات "المركزي" واستخدام إصدارات SQL خادم اكسبرس كما في الخلفية على قواعد البيانات "عن بعد"، ثم استخدم الجداول المرتبطة في الوصول إلى اتصال قواعد البيانات هذه SSEE وتكرار لمزامنتها. إعداد إما دمج النسخ المتماثل أو النسخ المتماثل لقطة باستخدام الخاص بك قاعدة بيانات "المركزية"، كما الناشر وقواعد البيانات SSEE الخاص بك كما مشترك. وخلافا للتكرار وصول طائرة، يمكنك التحكم في الترقيم PK لكن بالنسبة لك، وهذا لن يكون مشكلة كما المشتركين الخاص بك لن تدفع التغييرات.

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

نصائح أخرى

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

وسوف تحتاج إلى النظر في المفاتيح الأساسية. قد يكون من الأفضل لإدراج اسم المستخدم أو الكمبيوتر المحمول في مفتاح للتأكد من أن سجلات تتعلق بشكل صحيح.

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

<اقتباس فقرة>   

ومن الممكن استخدام طائرة   تكرار بنيت في الوصول، ولكن أنا   سوف يحذرك، فمن مقشر للغاية.

والنسخ المتماثل Jet غير هشا. فمن موثوقة تماما عند استخدامها بشكل صحيح، تماما مثل أي أداة أخرى معقدة. صحيح أن بعض الأمور التي لا تسبب أي مشاكل في قاعدة بيانات غير منسوخة يمكن أن يؤدي إلى مشاكل عند تكرارها، ولكن هذا من المعقول بسبب طبيعة ما تكرره <م> أي محرك قاعدة بيانات يستتبع.

<اقتباس فقرة>   

ووسوف أيضا خبط PK الخاصة بك على   مهما الجداول يمكنك أن تفعل ذلك على ل   فإنه يأخذ الأعداد الصحيحة وقعت عشوائية في محاولة   وتجنب الاصطدامات الرئيسية، لذلك كنت قد   في نهاية المطاف مع -1243482392912 ك   PK المقبل على سجل معين. هذا   PITA لكتابة إذا كنت تفعل أي   نوع من البحث على ذلك (مثل العملاء   ID ورقم الطلب، الخ.)

وينبغي أبدا أن يتعرض البديل الترقيم التلقائي PKS للمستخدمين في المقام الأول. وهي أرقام لا معنى لها تستخدم في الانضمام إلى السجلات وراء الكواليس، وإذا كنت تعريضهم للمستخدمين IT'S خطأ في التطبيق الخاص بك DESIGN.

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

وثمة بديل آخر يتمثل في استخدام PK المجمع، حيث يشير عمود واحد النسخة المتماثلة المصدر.

ولكن هذا ليس بعض الخلل في تنفيذ النسخ المتماثل من Jet - انها قضية لأي سيناريو النسخ المتماثل مع الحاجة إلى تسلسل أرقام ذات معنى

<اقتباس فقرة>   

وأنت لا يمكن أتمتة Access   التزامن (ربما يمكنك همية   شيء مثل ذلك باستخدام VBA. لكن   لا يزال، لن يتم تشغيل أنه عندما   يتم فتح قاعدة البيانات).

وهذا غير صحيح واضح. إذا قمت بتثبيت مزامن جت يمكنك جدولة synchs (مباشرة أو غير مباشرة أو synchs الإنترنت). حتى من دون ذلك، هل يمكن جدولة VBScript لتشغيل بشكل دوري والقيام التزامن. تلك ليست سوى طريقتين لإنجاز الآلي synchroniziation طائرة دون الحاجة إلى فتح تطبيق Access الخاص بك.

واقتبس من وثائق MS:

<اقتباس فقرة>   

استخدم طائرة وكائنات النسخ المتماثل

وJRO في الحقيقة ليست أفضل طريقة لإدارة النسخ المتماثل Jet. لأحد، ولها وظيفة واحدة فقط في أن DAO نفسه يفتقر، أي القدرة على الشروع في التوافق غير مباشر في التعليمات البرمجية. ولكن إذا كنت تريد الذهاب لإضافة تبعية إلى التطبيق الخاص بك (JRO يتطلب مرجعية، أو يمكن استخدامها عبر الربط المتأخر)، قد كذلك إضافة تبعية على مكتبة مفيدة حقا للسيطرة على طائرة النسخ المتماثل، وهذا هو <ل أ href = "http://trigeminal.com/lang/1033/utility.asp؟ItemID=9#9" يختلط = "نوفولو noreferrer"> TSI المزامن ، التي أنشأتها مايكل كابلان، مرة واحدة الخبير قبل كل شيء في العالم على النسخ المتماثل طائرة (الذي انتقل منذ على تدويل كما منطقته التركيز). فهو يوفر لك التحكم البرمجي كاملة من وظائف تقريبا كافة النسخ المتماثل الذي يعرض طائرة، بما في ذلك synchs جدولة، وبدء جميع أنواع التزامن، والأمر MoveReplica التي تشتد الحاجة إليها (الطريقة القانونية الوحيدة لنقل أو إعادة تسمية نسخة طبق الأصل من دون كسر النسخ المتماثل).

وJRO هو واحد من أولاد الزوج وحده القبيح للأجهضت حملة مايكروسوفت ADO-في كل مكان. والغرض منه هو توفير وظائف جيت محدد لاستكمال ما هو معتمد في ADO نفسها. إذا كنت لا تستخدم ADO (ويجب أن لا يكون في التطبيق Access مع نهاية جيت الظهر)، ثم كنت لا تريد حقا أن استخدام JRO. كما قلت أعلاه، فإنه يضيف واحد فقط وظيفة غير متوفرة في DAO بالفعل (أي الشروع في التوافق غير مباشر). لا يسعني إلا أن أفكر أن مايكروسوفت كان يجري حاقد عن طريق إنشاء مكتبة قائمة بذاتها حصول على وظائف جيت معين ومن ثم ترك عمدا من جميع وظائف مفيدة بشكل لا يصدق أنها يمكن أن دعمت لو اختاروا ل.

والآن بعد أن كنت التخلص من التأكيدات الخاطئة في الأجوبة المقدمة أعلاه، وهنا قال لي ريكومينديشن:

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

ولكن التحذير واحد: إذا تغير السيناريو الإضافة الوحيدة في المستقبل، فسوف يكون مسقي، ويجب أن نبدأ من الصفر أو إرسال مجموعة كبيرة من التعليمات البرمجية شعر لإدارة حذف والتحديثات (وهذا ليس من السهل - الثقة لي، وأنا قد فعلت ذلك!). ميزة واحدة من فقط باستخدام النسخ المتماثل جيت (على الرغم من أنها الأكثر قيمة لتزامن اتجاهين، أي التعديلات في مواقع متعددة) هو أنه سوف معالجة السيناريو الإضافة الوحيدة دون أي مشاكل، وبعد ذلك بسهولة التعامل مع النسخ المتماثل الدمج الكامل ينبغي أن تصبح شرط في المستقبل.

والأخير من كل شيء، وهو مكان جيد للبدء مع النسخ المتماثل جيت هو النسخ المتماثل Jet المعرفة . الموارد، وأفضل الممارسات وأشياء لا تصدق الصفحات هي على الأرجح أفضل الأماكن لبدء.

يجب أن تقرأ في الوصول قاعدة البيانات النسخ المتماثل, ، كما أن هناك بعض المعلومات هناك.

ولكن أعتقد أنه من أجل أن تعمل بشكل صحيح مع التطبيق الخاص بك, سيكون لديك لطرح العرف الحل باستخدام الأساليب والخصائص المتاحة من أجل هذه الغاية.

استخدام طائرة كائنات النسخ المتماثل (JRO) إذا كنت تحتاج إلى برنامجي السيطرة على تبادل البيانات و تصميم المعلومات بين أعضاء مجموعة النسخ المتماثلة في قواعد بيانات Microsoft Access (.ملفات mdb فقط).على سبيل المثال, يمكنك استخدام JRO إلى كتابة إجراء مزامنة تلقائيا للمستخدم طبق الاصل مع بقية المجموعة عندما مستخدم بفتح قاعدة البيانات.لتكرار قاعدة البيانات برمجيا قاعدة البيانات يجب أن تكون مغلقة.

إذا كان لديك قاعدة بيانات تم إنشاؤها باستخدام Microsoft Access 97 أو في وقت سابق ، يجب استخدام كائنات الوصول إلى البيانات (DAO) برمجيا تكرار وتزامن ذلك.

يمكنك إنشاء والحفاظ على نسخ قاعدة البيانات في الإصدارات السابقة من Microsoft Access باستخدام DAO أساليب وخصائص.استخدام DAO إذا كنت تحتاج إلى برنامجي السيطرة على تبادل البيانات و تصميم المعلومات بين أعضاء مجموعة النسخ المتماثلة.على سبيل المثال, يمكنك استخدام DAO إلى كتابة إجراء مزامنة تلقائيا للمستخدم طبق الاصل مع بقية المجموعة عندما مستخدم بفتح قاعدة البيانات.

يمكنك استخدام الأساليب التالية و خصائص لخلق والحفاظ على نسخ قاعدة البيانات:

  • MakeReplica طريقة
  • Synchronize طريقة
  • ConflictTable الملكية
  • DesignMasterID الملكية
  • KeepLocal الملكية
  • Replicable الملكية
  • ReplicaID الملكية
  • ReplicationConflictFunction الملكية

يوفر Microsoft Jet الإضافية هذه الأساليب والخصائص من أجل خلق والحفاظ على جزئية النسخ (النسخ المتماثلة التي تحتوي على مجموعة فرعية من السجلات في كامل طبق الاصل):

  • ReplicaFilter الملكية
  • PartialReplica الملكية
  • PopulatePartial طريقة

يجب عليك بالتأكيد قراءة مزامنة البيانات جزء من الوثائق.

لقد استخدمت النسخ المتماثل في a00 لسنوات حتى اضطر إلى الترقية إلى a07 (عندما ذهب بعيدا).الأكثر إشكالية بحثنا ، على مستوى المشاريع ، إدارة الصراعات.إذا لم تدار في الوقت المناسب ، أو أن هناك الكثير من المستخدمين بالإحباط و يصبح بيانات يمكن الاعتماد عليها.

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

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

كان المستخدم زر منفصل إلى دفع/سحب في يتغذى معين FTP ملف تحديث من النظم القديمة.

هذه العملية عملت بشكل جيد جدا ، كما كان لدينا 30 من هذه "العقد" العمل في جميع أنحاء البلاد ، إدارة البيانات وتحديثها إلى خوادم بروتوكول نقل الملفات.

إذا كنت تفكر جديا في هذا المسار ، اسمحوا لي أن أعرف وأنا يمكن أن نرسل لك الوثائق.

ويمكنك كتابة برنامج المزامنة الخاص الذي يتصل الكمبيوتر المحمول يختار فرق من انها ديسيبل وتدرج إلى الربان. هو يعتمد على خطة البيانات الخاصة بك مدى سهولة هذه العملية سيكون. (إذا كان لديك العديد من الجداول مع FKS ... سوف تحتاج إلى أن تفعل ذلك بذكاء). وأعتقد أنه سوف يكون أكثر فعالية إذا كنت أكتب ذلك بنفسك.

وأتمتة يسمى هذا النوع من السلوك النسخ المتماثل وصلاحية الوصول يدعم ما يبدو، ولكن أنا لم أر قط ذلك تنفيذها.

وكما أعتقد معظم الوقت الكمبيوتر المحمول غير متصل إلى DB الرئيسي أنها ليست فكرة جيدة على أي حال (لتكرار البيانات).

وإذا كنت سوف تبحث عن أداة 3rd الطرف للقيام بذلك - ابحث عن الشيء الذي يمكن القيام به بسهولة فرق بين الجداول قبل النسخ، ويمكن القيام بذلك تدريجيا بالطبع

FWIW:

  1. Autonumbers.أنا أتفق مع ديفيد - لا ينبغي أبدا أن يتعرض.لإزالة هذا الإغراء, يمكنني استخدام عشوائي "ترقيم تلقائي".
  2. النسخ المتماثل.لقد استخدمت هذا على نطاق واسع بعض السنوات الى الوراء ، مع المقرر المصاحبة ، باستخدام Guid كما PK.لقد وجدت مرارا أن أي السقطات عبر الشبكة تلف النسخ المتماثلة ، ونتيجة لذلك اضطررت إلى إنقاذ البيانات و إعادة إصدار النسخ المتماثلة.مؤلمة!
scroll top