![]() |
|
كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) (/showthread.php?tid=6206) الصفحات:
1
2
|
كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - zouzou05 - 22-05-2014 بسم الله الرحمن الرحيم السلام عليك ورحمة الله وبركاته .. هل يمكن منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) والسلام عليكم كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - Houdini - 24-05-2014 اجل اجعل عملية بحث في ثريد منفصل راقب مدة اشتغال ثريد ادا زادت عند وقت معين عشر ثواني - دقيقة timeout ولو تنتهي من بحث نبه مستخدم و اغلق ثريد لينتهي بحث كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - zouzou05 - 24-05-2014 شكرا لك أخي هوديني ممكن مثال لأني لم أتعامل بالثريد من قبل كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - Houdini - 24-05-2014 يمكنك العثور على عدة امثله في نت ان استعمال ثريد فقط استثناء لو كنت تستعمل ado connection لقواعد بيانات فلا يمكن ان تشارك مجموعة من ثريد نفس اتصال يجب لكا اتصال ثريد منفصل كود : TADOSQLThread = class(TThread)
private
FADOQ: TADOQuery; // Internal query
FSQL: string; // SQL To execute
FID: integer; // Internal ID
public
constructor Create(CreateSuspended:Boolean; AConnString:String;
ASQL:string; IDThread:integer);
destructor Destroy; override;
procedure Execute(); override;
property ID:integer read FID write FID;
property SQL:string read FSQL write FSQL;
property ADOQ:TADOQuery read FADOQ write FADOQ;
end;كود : constructor TADOSQLThread.Create(CreateSuspended:Boolean; AConnString:String;
ASQL:string; IDThread:integer);
begin
inherited Create(CreateSuspended);
// ini
Self.FreeOnTerminate := False;
// Create the Query
FADOQ := TAdoquery.Create(nil);
// assign connections
FADOQ.ConnectionString := AConnString;
FADOQ.SQL.Add(ASQL);
Self.FID := IDThread;
Self.FSQL:= ASQL;
end;تنفيد ثريد بسيط في دالة excu كود : procedure TADOSQLThread.Execute();
begin
inherited;
try
// Ejecutar la consulta
Self.FADOQ.Open;
except
// Error al ejecutar
...Error treattement
end;
end;لبدء ثريد هكداا كود : //crear el Thread
th := TADOSQLThread.Create(True, mmConnection.Lines.Text, ASQL, AId);
// internal for me (for controled the number of active threads and limete it)
inc(numThreads);
// evento finalizacion
th.OnTerminate := TerminateThread;
// Ejecutarlo
th.Resume;هدا كل ما فس الامر مثال من stackoverflow. كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - محمد عبد العزيز - 25-05-2014 وعليكم اسلام ورحمة الله إقتباس :هل يمكن منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا)أعد التفكير في تصميم قاعدة البيانات وكيفية استخدام البحث وما له علاقة نوع قاعدة البيانات / كيفية الاتصال / كيفية البحث، جدول Table /استعلام SQL ، الادلة الفريدة Index كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - S.FATEH - 25-05-2014 السلام عليكم او باستخدام مكونات حفظ البيانات في الذاكرة مثل TClientDataSet او KBMTable كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - zouzou05 - 25-05-2014 شكرا لك أخي هوديني على المثال .. سأحاول العمل به علما أني لم أستحدم الثريد من قبل شكرا لكم اخواني. عبد العزيز . فاتح . أنا أستعمل قاعدة بيانات أكسس وحجمها كما قلت تقريبا 800 ميغا تتكون من الاسم اللقب ورقم الهاتف .... والمعلومات الناتجة بعد البحث تعرض في Dbgrid و Label فما نصيحتكم + وهل يمكن البحث في القاعدة مثل محرر نصوص الوندوز أي تبحث عن اسم يظهر الناتج و تظغط مرة أخرى ويظهر الاسم المشابه وهكذا وشكرا لكم مرة أخرى كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - محمد عبد العزيز - 27-05-2014 إقتباس :هل يمكن البحث في القاعدة مثل محرر نصوص الوندوزطبعا ممكن. إقتباس :قاعدة بيانات أكسس وحجمها كما قلت تقريبا 800 ميغاكم من سجل ؟ كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - zouzou05 - 29-05-2014 b.m.abdelaziz كتب :طبعا ممكن.اذا أمكن كيف لأني لم أجد في النت أي شرح أو حتى تلميح .... قاعدة البينات تحتوي على مايقارب 18000000 وجدت كتاب عربي يتكلم عن الثريد و تمكنت بحل مشكل الثقل والحمد لله باستخدام الثريد كيف منع البرنامج من التجمد اثناء البحث (قاعدة البيانات تقريبا 800 ميغا) - Lam.Abdeldjalil - 30-05-2014 السلام عليكم إقتباس :قاعدة البينات تحتوي على مايقارب 18000000* هل تقوم بجلب كل السجلات ؟ يمكنك تحديد عدد السجلات المجلوبة ( لا أظن أن المستخدم يحتاج 18 مليون سجل دفعة واحدة ، بالعكس تسبب له الصداع :eek: ) * ما مكونات الإتصال ؟ إذا كانت FireDac-AnyDac يمكن تحديد عدد السجلات المجلوبة RowsetSize ، أظن أن Unidac .. لها خاصية مشابهة كما يمكن تحديدها 'عدد السجلات المجلوبة' يدويا ( برمجيا) http://delphi4arab.net/forum/showthread.php?tid=8890 بالتوفيق |