رد: ارجو مراجعة الكود الاتي

بواسطة عروة عيسى في 2016/11/12 21:38:22

المشكلة ضمن عبارة SQL
- كل ماهو ضمن علامتي التنصيص سيتم التعامل معه كنص فقط ,
اما عندما نتعامل مع المتحولات نستخدم معامل الجمع + الذي يصل النصوص ببعضها مثلا :
SQL.Add('Insert Into '+Elag[I]+' Select no,"","","",'+' From ');
      
SQL.Add('kesm Where No Not In (Select No From '+Elag[I]+') ');


- تظهر مشكلة باستخدام اشارة التنصيص المفردة ضمن نص يحوي اشارات تنصيص مفردة أيضا , فلن يستطيع مترجم البيئة معرفة اين بدأ النص واين انتهى لانه يميز النص عن طريق وضعه بين اشرات التنصيص ولايتوقع وجود إشارات تنصيص ضمن النص نفسه, للحل
اما نستخدم اشارة تنصيص مضاعفة بدل المفردة : "
او نستخدم إشارتي تنصيص مفردة وراء بعضها تترجم على انها اشاره واحده : مثلا ' it''s me'
يمكن بناء تابع يعيد نص ضمن اشارتي تنصيص كالتالي :
function QutedStr(sstring): string;
begin
  result 
:= '''' '''';
end;


او الحل الأفضل بأن نستخدم اسلوب البارامترات :
SQL.Add('Insert Into '+Elag[I]+' Select no,:s,:s,:s,:p From ');
      
SQL.Add('kesm Where No Not In (Select No From '+Elag[I]+') ');
      
ADOQuery1.Parameters.ParamByName('s').Value:='';
      
ADOQuery1.Parameters.ParamByName('p').Value:=p;


رابط هذه المشاركة: http://www.orwah.net/modules/newbb/viewtopic.php?post_id=4440