السلام عليكم ورحمة الله
انا انوع الدروس هنا وهناك حتى اذا توقفت لعدة ايام نتيجة ظروفي الخاصة تجدون ما تبحثون فيه حتى اعود
ولديكم قسم الاسئلة اسالوا مالا تفهمونه وانا اجيب
شرحنا في درس سابق استخدام المكون الخاص بالجداول حيث يمكنك ان تختار اسم الجدول وتجري على فلترة فقط .
ولكن هذا قد لا يكون كافيا وتحتاج الى المزيد من الدقة والتعقيد
ولهذا سوف نستخدم الاداة ADOQuery والتي يمكنك منها استدعاء البيانات حسب جمل الاستعلام الاعتيادية
في المثال المرفق ستجدون مثال لقراءة مجموعة من البيانات والاستعلام عنها بالبحث عن اسم معين كما بالشكل التالي :
طبعا يمكنك اسناد جملة الاستعلام اما مرئيا الى المكون او برمجيا
بالنسبة الى الطريقة المرئية انظر للصورة
من الخاصية SQL تكتب جملة الاستعلام المطلوبة فقط وطريقة الربط بالداتا جريد ومكون الاتصال والداتا سورس لعرض البيانات نفس الطريقة التي بالمكون الخاص بالجداول
راجع الدرس الخاص بالجداول من اضافة وتعديل هنا
قبل ان نتطرق الى الطريقة البرمجية ماذا لو كان الاستعلام معقد قليلا وفيه شرط انظر للتالي:
جملة شرطية وبنهايتها وضعنا بارامتر والعلامة الدالة عليه هيا نقطتين انها توازي العلامة @ في الدوت نت
اذا اردت ان تضع قيمة البارمتر مرئيا او ان تضبط نوعه وما الى ذلك من نافذة الخصائص نفسها وكما بالصورة السابقة انظر فوق الخاصية SQL ستجد الخاصية Parameters
انقر عليها لتظهر لك النافذة التالية
وهاهو البارمتر يظهر هنا ومن هنا يمكنك تحديد نوعه هل هو نصي ام رقمي وقيمته وما الى ذلك
يمكنك ترك كل شئ كما هو سيفهم المترجم بحال اسناد او طلب القيمة بنفسه ما هو .
الان الطريقة البرمجية
في حدث تحميل النموذج كتبنا جملة الاتصال بقاعدة البيانات وجملة الاستعلام لمكون الاستعلام وفتحنا الاتصال
في زر البحث عن اسم معين كتبنا جملة الاستعلام والبارامتر ووضعنا قيمة البارمتر وفتحنا الاتصال
وبحال كانت اداة البحث فارغة نستخدم جملة الاستعلام التي بدون شرط لاظهار كافة البيانات
او يمكن اختصار الكود قليلا ليصبح كما بالشكل التالي :
لاحظ العبارة التالية
هنا نقول له امسح جملة الاستعلام السابفة بحال كانت موجودة واما الخاصية ADD فهي لاظافة جملة الاستعلام
الامر بالغ البساطة .
يمكننا تنفيذ اي نوع من الاستعلامات مثلا هنا نجلب مجموع كامل الاسعار
او عدد الحقول
لتحميل المثال واي سؤال انا حاضر طبعا لازال الدرس يتبع سوف نكمل كيف نضيف ونحذف ونعدل بواسطة هذا المكون وبالطريقة التقليدية لجمل SQL
بالتوفيق للجميع
New folder (2).rar (الحجم : 80.39 ك ب / التحميلات : 85)
انا انوع الدروس هنا وهناك حتى اذا توقفت لعدة ايام نتيجة ظروفي الخاصة تجدون ما تبحثون فيه حتى اعود
ولديكم قسم الاسئلة اسالوا مالا تفهمونه وانا اجيب
شرحنا في درس سابق استخدام المكون الخاص بالجداول حيث يمكنك ان تختار اسم الجدول وتجري على فلترة فقط .
ولكن هذا قد لا يكون كافيا وتحتاج الى المزيد من الدقة والتعقيد
ولهذا سوف نستخدم الاداة ADOQuery والتي يمكنك منها استدعاء البيانات حسب جمل الاستعلام الاعتيادية
في المثال المرفق ستجدون مثال لقراءة مجموعة من البيانات والاستعلام عنها بالبحث عن اسم معين كما بالشكل التالي :
طبعا يمكنك اسناد جملة الاستعلام اما مرئيا الى المكون او برمجيا
بالنسبة الى الطريقة المرئية انظر للصورة
من الخاصية SQL تكتب جملة الاستعلام المطلوبة فقط وطريقة الربط بالداتا جريد ومكون الاتصال والداتا سورس لعرض البيانات نفس الطريقة التي بالمكون الخاص بالجداول
راجع الدرس الخاص بالجداول من اضافة وتعديل هنا
قبل ان نتطرق الى الطريقة البرمجية ماذا لو كان الاستعلام معقد قليلا وفيه شرط انظر للتالي:
جملة شرطية وبنهايتها وضعنا بارامتر والعلامة الدالة عليه هيا نقطتين انها توازي العلامة @ في الدوت نت
اذا اردت ان تضع قيمة البارمتر مرئيا او ان تضبط نوعه وما الى ذلك من نافذة الخصائص نفسها وكما بالصورة السابقة انظر فوق الخاصية SQL ستجد الخاصية Parameters
انقر عليها لتظهر لك النافذة التالية
وهاهو البارمتر يظهر هنا ومن هنا يمكنك تحديد نوعه هل هو نصي ام رقمي وقيمته وما الى ذلك
يمكنك ترك كل شئ كما هو سيفهم المترجم بحال اسناد او طلب القيمة بنفسه ما هو .
الان الطريقة البرمجية
في حدث تحميل النموذج كتبنا جملة الاتصال بقاعدة البيانات وجملة الاستعلام لمكون الاستعلام وفتحنا الاتصال
كود :
procedure TForm1.FormCreate(Sender: TObject);
var
str:string;
begin
str:=ExtractFileDir(Application.ExeName) + '\db.mdb' ;
ADOConnection1.Close;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' + str;
ADOConnection1.Connected:=true;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from Test1') ;
ADOQuery1.Open;
end;
في زر البحث عن اسم معين كتبنا جملة الاستعلام والبارامتر ووضعنا قيمة البارمتر وفتحنا الاتصال
وبحال كانت اداة البحث فارغة نستخدم جملة الاستعلام التي بدون شرط لاظهار كافة البيانات
كود :
if Edit1.Text ='' then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from Test1') ;
ADOQuery1.Open;
end
else
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from Test1 Where mname=:mname') ;
ADOQuery1.Parameters.ParamByName('mname').Value:=edit1.Text;
ADOQuery1.Open;
end;
او يمكن اختصار الكود قليلا ليصبح كما بالشكل التالي :
كود :
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
if Edit1.Text ='' then
ADOQuery1.SQL.Add('Select * from Test1')
else
begin
ADOQuery1.SQL.Add('Select * from Test1 Where mname=:mname') ;
ADOQuery1.Parameters.ParamByName('mname').Value:=edit1.Text;
end;
ADOQuery1.Open;
لاحظ العبارة التالية
كود :
ADOQuery1.SQL.Clear
هنا نقول له امسح جملة الاستعلام السابفة بحال كانت موجودة واما الخاصية ADD فهي لاظافة جملة الاستعلام
الامر بالغ البساطة .
يمكننا تنفيذ اي نوع من الاستعلامات مثلا هنا نجلب مجموع كامل الاسعار
كود :
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('Select Sum(price) from Test1');
ADOQuery2.Open;
edit2.Text:=ADOQuery2.Fields[0].Value;
ADOQuery2.Close;
او عدد الحقول
كود :
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('Select Count(price) from Test1');
ADOQuery2.Open;
Edit3.Text:=ADOQuery2.Fields[0].Value;
ADOQuery2.Close;
لتحميل المثال واي سؤال انا حاضر طبعا لازال الدرس يتبع سوف نكمل كيف نضيف ونحذف ونعدل بواسطة هذا المكون وبالطريقة التقليدية لجمل SQL
بالتوفيق للجميع
New folder (2).rar (الحجم : 80.39 ك ب / التحميلات : 85)