الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عندي مشكلة مع كبر حجم الجداول

بدأه usamah_gg في 17 يناير 2012 · 7 رد · 600 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

الاخوة الكرام سؤالي هو

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

و البرنامج يحتاج الرجوع الي هذة السجلات (لا استطيع حفظ نسخ احتياطية)

ارجو من كم مساعدتي

#2

وعليكم السلام ورحمة الله وبركاته ...

أخي بالنسبة للجداول الكبيرة ، إذا كنت تريد التعامل مع جدول كبير ، فستواجه مشكلة time out بسبب تأخر الاتصال ، ولهذا كل ما عليك هو تأخير فترة الاتصال من خلال الكود التالي :

cnn.ConnectionTimeout =  100000 ' تأخير فترة الانتظار لمدة 100000 ثانية

أما أي عمليات استعلام فلابد من حدوث تأخير ، وقد لا يستجيب البرنامج إلا بعد الانتهاء من الاستعلام إلا في حالة استخدام أداة backgroundworker ، ويفضل أن تتعامل مع البيانات بعد وضعها في dataset من خلال dataview ...

بالتوفيق إن شاء الله ...

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#3

السلام عليكم ورحمه الله وبركاته

اخي يمكنك زيادة الـ TimeOut كما ذكرها الاخ سابقا, وانصحك باستخدام البرمجة الغير متزامنة لمنع تعليق البرنامج ..

.:: Wish to become better and better ::.

#4

الاخوة الافاضل شكراَ لكم

بس لو ممكن مساعدة بفكرة البرمجة الغير متزامنة

انا اجلب البيانات

Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source =" & Application.StartupPath & "\db.mdb"

Dim Conn As New OleDbConnection(ConStr)

Dim DataSet1 As New DataSet

Dim SQLstr1 As String = "SELECT * from mytable WHERE id = '" & textbox7.text& "'"

Conn.Open()

Dim DataAdapter1 As New OleDbDataAdapter(SQLstr1, Conn)

DataAdapter1.Fill(DataSet1, "mytable")

Conn.Close()

طبعاَ احدد سجل واحد فقط من ملاين السجلات

#5

لاحظت من خلال سلسلة الاتصال ان قاعدة البيانات أكسس فلماذا لا تقوم بتحويل هذه القاعدة الي سيكوال حتي تستطيع ان تدير القاعدة بشكل افضل لما يحتويه السيكوال من امكانيات تساعدك علي ادارة هذه القاعدة في ظل هذا الكم الكبير من البيانات بدلاً من الاكسس

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#7

أخي ، إذا كنت تعاني من فهم البرمجة غير المتزامنة (( مثلي :wacko: )) فحاول أن تتعامل مع البيانات التي تقوم بجلبها من خلال Dataview ، وهذه الطريقة التي استخدمها غالباً ، :

لو كان لدينا جدول باسم emp يحتوي على بيانات الموظفين وقمنا بجلب الجدول إلى dataset كالتالي :

Dim DataAdapter As New New OleDbDataAdapter("Select * from emp  ", con)
            con.Open()
            Dim dataset As New DataSet
            dataset.Clear()
            DataAdapter.Fill(dataset, "emp")

هنا وضعنا كامل الجدول في dataset ، وباستخدام dataview نستطيع أن تعامل مع الجدول الموجود في dataset مباشرة ، فلو أردنا البحث في اسماء الموظفين مثلاً في حدث textchanged نستخدم الكود التالي :

Dim dv As DataView = New DataView(dataset.Tables(0), ("Emp_Name Like '%" + (TextBox1.Text + "%'")), "", DataViewRowState.OriginalRows)

ثم تضع نتائج البحث مثلا في Listbox :

With ListBox1
            .DataSource = dv
            .DisplayMember = "ُEmp_Name"
            .ValueMember = "Emp_Name"
        End With

هذا باختصار ....

وأتمنى من الأخ العزيز vb helper أن يزودنا بمراجع منظمة حول البرمجة غير المتزامنة بشكل عام ، أتمنى أن أعرف فيها أكثر ....

تم تعديل هذه المشاركة بواسطة عاشق للبرمجة في 18 يناير 2012 في 20:47

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#8
usamah_gg كتب:

السلام عليكم ورحمة الله وبركاتة

الاخوة الكرام سؤالي هو

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

و البرنامج يحتاج الرجوع الي هذة السجلات (لا استطيع حفظ نسخ احتياطية)

ارجو من كم مساعدتي

اخي العزيز 50000 سجل في اليوم ليست مشكله فما بالك ب 50000 سجل في السنه

هذا امر طبيعي جدا و الا لما كان هناك قواعد بيانات و اكتفينا بالملفات

المشكله بكل تأكيد في جمله الاستعلام او في تصميم قاعدة البيانات

لو شاركتنا بجمله الاستعلام التي تأخذ مدة طويله من الممكن ان نساعدك بتحسينها

و ربما بعض الجداول يحتاج الي index

او تعديل تصميم

دمتم بود

سبحان الله وبحمده *** سبحان الله العظيم

www.quraany.com

www.arabcs.com

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…