تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] رسالة خطأ عند الحذف أو تعديل بيانات جديدة #concurrency violation#
#11
الشكر لله والحمد لله
والحمد لله على كل حال

لا يوجد اى تقل اخى الحبيب
بالعكس انا احب من يسال حتى يستفاد
وان لا يقع فى الخطاء من الاكواد 
وتذكر اننا دائماً نتعلم دائماً فلا احد يعلم كل شئ

(17-05-19, 03:07 PM)sniperjawadino كتب : 1/ فهمت جيدا المثال الذي شرحت لي
لكن في هذا المثال هل يمكن أن نقول أن هذا الخطأ في الحساب قد يقع في لحضة أقل من ثانية
يعني المدة بين جلب الاستعلام و حفض التعديل عن طريق DataTable 

يعني هل هذا هو مكان الخطأ

فقط من باب الفهم أخي
أما أنا فبعد شرحك فقد استخدمت الطريقة التي منحتني

نعم هذا هو موقع الخطاء كونك تعتمد على DataTable
وهو عبارة عن انشاء جدول من الجدول الرئيسي بصورة مؤقتة
ثم ارسال بيانات الجدول المؤقت الى الجدول الرئيسي
وكذلك الخطاء ليس يتوقف على ثانية او اقل من ثانية
بال دائماً قواعد البيانات تتعامل مع الجزء من الثانية
تخير الامر لو مول يحتوى على 20 موظف كاشير
وكلاهما يقوم بتمرير مشتريات المشتري فكم معدل ادخال المنتج
والحفظ لعمل الفاتورة فى الثانية الواحدة ستجد انه 
على الاقل لو كان الحركة بطئ جداً سيكون 3 بيانات فى الثانية 
تخيل الحركة من العمالة مع المشتري بطئ ويتم تحديث 3 بيانات فى الثانية الواحدة
ما بال عندما يكون فى ضغط والموظفين يقوم بالعمل باسرع ما عندهم

(17-05-19, 03:07 PM)sniperjawadino كتب : 2/ هل الكود الذي منحتني update query 
هل يمكنني أن أقول أن هذا هو الوضع المتصل ؟

وما كنت أقوم به هو الوضع المنفصل  ؟

و الوضع متصل لا يصلح في الشبكة ؟

التعامل من خلال كود Update هو نفسه التعامل مع DataTable
لان كلاهما جدول ولكن الفرق ان مع DataTable ان بتمرر الامر مرتين
خلال استعلام وانشاء جدول وهمى مؤقت ومن ثم ارساله الى الجدول الرئيسي
بينما Update هو التعامل مباشراً مع الجدول بقاعدة البيانات
والقيم التي ترسل له تاخد على شكل اوردرات ويتم بالنهاية تجنب مثل ما كان يحدث معك من اخطاء
بخصوص وضع المتصل او المنفصل
ليس بهذه الصورة لان كلاهما بالنهاية يتعامل مع قاعدة بيانات فعلية
ولكن كل الامر انه بتتعامل مع قاعدة البيانات مباشراً
وبينما انك تقوم بانشاء جدول وهمى من بيانات من الجدول الرئيسي 
ومن ثم التعامل مع الجدول الوهمي وبعد ذلك ارسال الجدول الوهمى الى الجدول الرئيسي

جدول وهمى : المقصود بها هو الاستعلام
عند عمل استعلام يعنى انك قمت بانشاء نسخة من الجدول بقيمة تم طلبها من خلال الاستعلام
فى الذاكر حتى اتمام تفريغها او الانتهاء منها

بخصوص السؤال الثالث كلامي ما سبق يوضح الامر كاملاً

(17-05-19, 03:07 PM)sniperjawadino كتب : 3/ بالنسبة ل 
If Not cn.State = ConnectionState.Open Then
هل فتح القاعدة قبل الاستعلام يلعب دور datatable التي كنت استعملها ؟
لأني لم أقم يوما بفتح القاعدة قبل الاستعلام
والكل كان شغال حتى باستعمال update query 
لكن باستخدام datatable طبعا

فتح الاتصال بقاعدة البيانات تستخدم فقد عند التنفيذ
والتنفيذ هنا هو الادخال والحذف والتعديل
تخيلها كدة كتصريح القراءة والكتابة 
بينما الاستعلام لا يحتاج الا فقط القراءة وهنا كود فتح الاتصال لا ضرورة له
بخصوص الاختلاف التحديث من خلال datatable
لماذا لم يتم عمل فتح واغلاق 
السبب هنا يرجع لكونك ترسل قيمة الى ملف الجدول نفسه
وعند استلام الملف الكود خاص تحديث الجدول يقوم بالتنفيذ بناءاً على صلاحيات الملف
والكود يستوعب ملف قاعدة البيانات بناءاً على كود الاتصال يقاعدة البيانات واللى هو con

(17-05-19, 03:07 PM)sniperjawadino كتب : 4/ هل هناك ضرر للقاعدة بسبب كثرة الاسعلامات ؟
وبالتالي كثرة  فتح القاعدة و غلقها  القاعدلة
فتح...غلق..فتح...غلق...فتح...غلق..فتح...غلق

لا يوجد اى ضرر على قاعدة البيانات
ففتح واغلاق قاعدة البيانات كما لو ذهبت الى ملف الـ access
وقمت بتفحه ومن ثم رجعت واغلقته مجدداً
والاستعلام هو كما لو قمت بعد فتح ملف Access قمت بالذهاب الى الجدول وعرض ما بها

ولكن الضرر والاخطاء التى تنتج من الاغلاق والفتح والاستعلام
يكون على الجهاز او باصح اذا كان على سيرفر متصلاً بالانترنت
فيكون الضرر هو استهلاك bandwidth ( الترافيك ) ويكون الاستهلاج طبقاً للحجم وهذا فقط للقواعد التى تعمل من خلال الاستضافات
وتكون اكثر لقواعد البيانات sql server و mysql

(17-05-19, 03:07 PM)sniperjawadino كتب : 5/ قمت بااطلاع على موضوعك الكبير و الجميل
▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
فقط أريد أن أعرف ما الفرق بين أني أقوم بعمل مشاركة لقاعدة البيانات بصورة مباشرة في الشبكة
يعني أعطي كل مستخدم رابط القاعدة التي وضعت في الخادم

وبين الطريقة التي قمت أنت بها في الموضوع
يعني تقسيم القاعدة ....

ما الفرق
أو ما  الإجابيات

السبب هنا لكون قاعدة البيانات

الجداول التى بداخلها لا تعمل اكثر من مرة فى وقت واحد
كما لو قمت ببرمجة برنامج وجعلته لا يعمل اكثر من مرة

ولتوضح الصورة اكثر
تعال افتح ملف access وتعال جرب تفتح نفس الملف مجدداً
ستجده انه بالنهاية يعرض الملف المفتوح مسبقاً ولم يقوم بفتح الملف مرتين
وايضاً تعال وانت فاتح الملف كده اعمل تحرير لجدول على وضع التصميم
ومن ثم قم بعمل استعلام على نفس الجدول المفتوح على وضع التصميم
ونفذ كود الاستعلام ستجد رسالة تشير انه غير قادر على تنفيذ الاستعلام لكون الجدول يعمل بالفعل

ولهذا يتم عمل مشاركة للجداول بملفات فرعية
ويتم وضع الملفات الفرعية بجهاز كل مستخدم
لان عند الفتح والاغلاق سيتم على النسخة الفرعية وليست الرئيسية
وعند الاغلاق وحفظ التعديل او الاضافة او الحذف سيتم ارسال البيانات من الملف الفرعي الى الرئيسي
ويتم وضعها فى حالة الاوردرات كما اشرت اليها بالاعلى ان كل مستخدم عند الضغط 
يتعامل قاعدة البيانات بجزء من الثانية وحيث ان كل امر يعتبر اوردرات يتم ارسالها الى الملف الرئيسي لاتمام تنفيذها

النقطة الاخيرة حتى تكون على علم بها
بان اى كود يخص التعديل و الحذف لا يقلل من مساحة قاعدة البيانات
لنقول ان الجدول يحتوى على 1000 بيان بمساحة قاعدة البيانات 10 ميجا مثلاً
فعند الحذف ليبقي الجدول يحتوى على 100 ستجد ان مساحدة قاعدة البيانات كما هى 10 ميجا
وكذلك عند التعديل اذا كان خلية تحتوى مثلاً على 100 حرف وتم تعديلها لتصبح 6 احرف فيبقي مساحة
قاعدة البيانات كما هى بدون ان يشعر ان قل عدد الاحرف او البيانات بالجداول ولحل مشكلة هذه
ستحتاج كل مدة تنفيذ كود ضغط قاعدة البيانات التى وظيفتها اعادة مراجعة الجداول من احجامها لتحديد مساحة قاعدة البيانات

والى هنا اكون انهيت الرد على الاسئلة بامر الله
واتمنى ان لا يكون كلامي كثيراً وان تشعر بمتاهة بسبب كثرة الكلام
فسامحنى على ذلك

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] قاعدة بيانات postgress tarek 2 168 06-04-19, 09:07 PM
آخر رد: elgokr
  الاتصال بقاعدة بيانات mdf موجودة على القرص نور الهدى الهدى 10 460 18-03-19, 08:55 PM
آخر رد: 5000
  قاعدة بيانات بيانات ال sql مع الفجوال 2008 raaddawood 0 213 02-02-19, 11:16 AM
آخر رد: raaddawood
  الاتصال بقاعدة بيانات اكسس وفق نظام 64 بايت raaddawood 0 196 28-01-19, 09:21 PM
آخر رد: raaddawood
Photo [VB.NET] تعديل المدخلات في (الداتا قريد فيو ) لفاتورة مبيعات؟ EYADISMAIL 1 297 09-01-19, 10:30 PM
آخر رد: EYADISMAIL
  [VB.NET] الاتصال بقاعدة بيانات Access على استضافه YazanOtoum 8 2,472 05-01-19, 06:05 PM
آخر رد: musa al7elo
  سؤال بخصوص تحديث بيانات DataGridView abdullhadi999 0 227 05-01-19, 12:28 AM
آخر رد: abdullhadi999
  سؤال بخصوص تحديث بيانات DataGridView abdullhadi999 0 159 05-01-19, 12:27 AM
آخر رد: abdullhadi999
  مل نسخة احتياطية لقاعدة بيانات sql server djelloul 8 1,387 23-12-18, 01:21 AM
آخر رد: atefkhalf2004
  استيراد نموذج به 145000 صف بيانات nabil.1710 2 388 16-12-18, 09:05 PM
آخر رد: viv

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم