تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تجربة لأربع حواسيب تقوم بعملية البحث في قاعدة البيانات
#1
السلام عليكم إخواني
قمت بعمل تجربة لأربع حواسيب تقوم بعملية البحث في قاعدة البيانات (أكسس) عن نفس المنتوج
و ذلك في نفس الوقت و بطريقة متتالية 
(وضعت الكود في تايمر كل تانية)

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


لا يمكن فتح قاعدة البيانات قد لا تكون قاعدة بيانات يتعرف عليها التطبيق الخاص بك أو الملف تالف. "


لا يمكن إستخدام هذا الملف,,لأنه قيد الإستعمال


تم وضع قاعدة البيانات بواسطة المستخدم << Admin >> on << اسم الجهاز >> في حالة تمنعه من الفتح أو الإغلاق
الرد
تم الشكر بواسطة: ابراهيم ايبو
#2
اخي العزيز اعمل نفس التجربة على قاعدة بيانات sql server و قارن النتائج .

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

شكرا كثيرا لك أنا في صدد تعلم sql server

أتمنى أن أجد حل ترقيعي لهده الرسائل ريتما أصل لنقطة تمكن sqlserver
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#4
لهذا لا ينصح باستخدام قاعدة بيانات الأكسس في الشبكات
الرد
#5
ايضا هناك نصيحة أخر أستخدم الوضع المنفصل في عملية البحث و عرض السجلات وما شابة .... يعني اجعل كل مستخدم يفتح البرنامج يأخذ نسخة من قاعدة البيانات في الذاكرة بعد ذلك يتعامل معها وينسى تماما القاعدة الاصلية ستزول الأخطا تماما ان شاء الله
الرد
#6
شكرا أخي Beginer
شكرا أخي سامي محمد
على نصائحكم

حقا أنا الآن أتابع دروس sqlserver فالأكسس به مشاكل كثيرة في الشبكة
لكن أحاول ترقيع المشكل الآن
والحل الذي أخبرتني به أخي سامي جيد جدا

فقط سؤالين جزاك الله خيرا
عند تحميل جدول قاعدة البيانات في DATATABLE هل يمكن أن أستخدم إستعلامات البحث و الفلترة عليه كما أستخدمها في القاعدة مباشرة
ممكن تعطيني مثال صغير جدا

عند تغيير في القاعدة من طرف المدير
هل من حل لعمل تحديث للمستعملين الآخرين من دون الخروج من البرنامج
الرد
تم الشكر بواسطة:
#7
السلام عليكم اخي الكريم Sniperjwadino
الوضع المنفصل هو انك لاتتعامل مع قاعدة البيانات مباشرة بل مع نسخة منها في الذاكرة بخلاف الوضع المتصل حبث تتم العمليات على القاعدة مباشرة (طبعا لكل من الوضعين حسناته وعيوبه) 
في الوضع المنفصل وعند الحفظ والتعدبل والحذف تضع في نهاية كل كود منها اعادة شحن الذاكرة بنسخة جديدة من قاعدة البيانات فالامر عادي جدا وهو مثل الوضع المتصل ولكن اين الفرق؟
مثلا اثنان بعملان على قاعدة البيانات وليكن المثال بيع منتج والمنتج بقي منه قطعة واحدة
 الان كل واحد عنده نفس المعلومات
قام البائع الاول ببيع القطعة والثاني لايعرف .. ثم جاء زبون جديد ويريد شراء المنتج من البائع الثاني وعند محاولته البيع سيجد ان بيع هذه القطعة متاح (إذا لم يقم بتحديث البيانات)
 وعند محاولة البيع والحفظ ستظهر له النتيجة الصادمة ان القطعة غير موجودة ومباعة ومن اجل حل هذه الاشكالية
نقوم بتحديث الجدول من القاعدة عند جلب الكمية المتاحة عندها نعلم انه قد تم بيعها ولم يتبق منها 
وهذه الثغرة يستفيد منها قراصنة  النقود من نقاط سحب العملات ان كانت تعمل بالوضع المنفصل (طبعا ان لم يكن هناك تذابير امان وتحقق)
وكذلك يمكننا انشاء Button مهمته تحديث البيانات ولاداعي لاغلاق البرنامج
هذه هي الفكرة ببساطة اتمنى ان اكون قد اوصلتها لك 
دمت بخير
الرد
#8
هذا مثال :


.zip   TestProjectVB.zip (الحجم : 151.89 ك ب / التحميلات : 2)

ماالذي تقصده في تغيير في قاعدة البيانات تغيير في الاعمدة كاضافة عامود او حذف عامود او تغيير في الصلاحيات الخاصة بمستخدم معين .

اما الباقي فقد اجاب عنه اخي العزيز ابراهيم .

سكربت قاعدة البيانات و الجدول :

PHP كود :
USE [master]
go
Create Database 
[DB]
go

USE [DB]
GO

/****** Object:  Table [dbo].[TB_Users]    Script Date: 8/10/2019 1:34:40 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE 
[dbo].[TB_Users](
    [
User_ID] [intNOT NULL,
    [
User_Nam] [nvarchar](50NULL,
    [
User_Nam_Login] [nvarchar](50NULL,
    [
User_Password] [nvarchar](50NULL,
    [
User_Admin] [nvarchar](50NULL,
 
CONSTRAINT [PK_TB_UsersPRIMARY KEY CLUSTERED 
(
    [
User_IDASC
)WITH (PAD_INDEX OFFSTATISTICS_NORECOMPUTE OFFIGNORE_DUP_KEY OFFALLOW_ROW_LOCKS ONALLOW_PAGE_LOCKS ONON [PRIMARY]
ON [PRIMARY]

GO 
الرد
تم الشكر بواسطة: ابراهيم ايبو , sniperjawadino , سامي محمد
#9
كفو و وفو الاخوان في الشرح
وبالنسبة لعملية البحث والفلترة تكون بحلقة دوران على صفوف الجدول وعرض النتائج اما في داتا قريد او ما شابه
وبالنسبة للتحديث فتعمل كلير للجدول من الذاكرة وتقوم بتعبأته من جديد . والافضل ان يكون هذا بعد عملية التحديث مباشرة ..... وباقي المستخدمين يجب توفير زر لهم كما ذكر الاخ ابراهيم من اجل تحديث القاعدة بحيث يعمل كلير للقاعدة من الذاكرة ومن ثم تعبآتها من جديد
الرد
#10
شكرا لكم أجمعين على مساعداتكم و أفكاركم

جزاكم الله كل الخير
الرد
تم الشكر بواسطة: asemshahen5



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


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