05-03-2023, 07:48 AM
افض حل باستخدام هي التحقق من كل شرط وفي حال تحققه يضاف الكود الخاص به لانك لو عملت لكل الاحتمالات فسينتهي الامر بمئات الاسطر والتي لافائدة منها
مثلا لديك اسم المستخدم والتاريخ والحركة
قمت بالبحث عن طريق اسم المستخدم والحركة
تقوم اولاً باخذ اسم المستخدم وتقوم باضافة الشرط الى الاستعلام
هذا كمثال بسيط لاحظ اني كل مااتحقق من شرط ويكون موجود يقوم باضافة نص الى متغير من نوع string في الاخير اقوم باسناد المتغير هذا الى مكون query واقوم بتنفيذه
ملاحظه: لتجنب injection استخدم البارامترات بدل الاسناد المباشر
بالتوفيق
مثلا لديك اسم المستخدم والتاريخ والحركة
قمت بالبحث عن طريق اسم المستخدم والحركة
تقوم اولاً باخذ اسم المستخدم وتقوم باضافة الشرط الى الاستعلام
كود :
var qu:string='select * from transaction where (1=1)';
if username.text<>''
qu:=qu+' and username='+quotedtostr( username.text );
if transdatechk.checked then//
qu:=qu+' and date between :a and :b';
if transtype.text<>'' then
qu:=qu+' and transtype ='+quotedtostr( transtype.text );هذا كمثال بسيط لاحظ اني كل مااتحقق من شرط ويكون موجود يقوم باضافة نص الى متغير من نوع string في الاخير اقوم باسناد المتغير هذا الى مكون query واقوم بتنفيذه
ملاحظه: لتجنب injection استخدم البارامترات بدل الاسناد المباشر
بالتوفيق


![[-]](https://delphi4arab.net/forum/D4A2020/collapse.png)