نقل قول: مشکل در دستور جستجو
دستور رو به صورت 'select * from AfradInfo where Fname Like"'+quotedstr(Edit1.Text)+'%"';تغییر دهید
نقل قول: مشکل در دستور جستجو
مگه این دستور Quotedstr چه عملی را انجام میده؟
نقل قول: مشکل در دستور جستجو
داش به این صورت که شما گفتین نوشتم بازهم جواب نمی ده!!
چکار کنم؟
نقل قول: مشکل در دستور جستجو
این کد دستور رو امتحان نمایید :
with ADOQuery1 do
begin
Close;
SQL.Text:='select * from AfradInfo where Fname Like ' + QuotedStr(Edit1.Text + '%') + ' ';
Open;
end;
نقل قول:
من با این دستور تو دیتابیس عمل جستجو را انجام می دادم . ولی حالا که دارم با SQL کار می کنم خطا می گیره
تو دیتابیس کجاست ؟
این کد دستور که نوشتین مربوط به دلفی است و نه SQL .
نقل قول: مشکل در دستور جستجو
دوست عزیز مثل اینکه من تو قسمت بانک اطلاعاتی دلفی تاپیک زدم و منظورم تو دلفی بوده نه SQL
نقل قول: مشکل در دستور جستجو
نگفتی QuotedStr کارش چیه؟
نقل قول: مشکل در دستور جستجو
چرا این کد جستجو حرف 'ی' را جستجو نمی کنه ؟
نقل قول: مشکل در دستور جستجو
quotedStr برای عبارات رشته ای استفاده میشه، در بخش هایی از دستور sql که مقدار فیلدها به صورت رشته قرار میگیرند از این تابع استفاده می شود. در واقع این تابع علامت ' ' را اطراف عبارت ورودی خود قرار میدهد، که بیانگر رشته در sql می باشد. مثلا عبارت
'select * from AfradInfo where Fname Like ' + QuotedStr(Edit1.Text + '%') + ' '
به این صورت به sql پاس داده می شود (که البته بجای Edit1.Text مقدار آن ارسال می شود)
select * from AfradInfo where Fname Like 'Edit1.Text %'
متوجه شدید
نقل قول: مشکل در دستور جستجو
اگر برنامه شما تحت ویندوز میتونید KBDFA.DLL ( در مسیر C:\Windows\System32) را با KBDFA.DLL فارسی جابجاکنید. و یا اینکه با دستور replace در sql کلیه 'ی'های درون دیتا بیس خود را با 'ی' فارسی جایگزین کنید.و از این به بعد هنگام درج نیز 'ی'های رکورد موردنظر را با 'ی'فارسی جایگزین کرده سپس درج کنید. و هنگام جستجو نیز 'ی' را به صورت فارسی جستجو کنید
نقل قول: مشکل در دستور جستجو
برای جست و جوی حروف فارسی قبل از عبارت مورد جست و جو حرف N رو بزارید تا جست و جو به صورت یونیکد انجام بشه :
with ADOQuery1 do
begin
Close;
SQL.Text:='select * from AfradInfo where Fname Like N' + QuotedStr('%' + Edit1.Text + '%');
ExecSQL;
end;
نقل قول: مشکل در دستور جستجو
جناب تاجیک از راهنمایی تون متشکرم
چرا وقتی از بانک اکسس استفاده می کنم از یونیکد ایراد نمی گیره ولی تو SQL خطا می گیره و باید قبلش N بزاریم ولی در صورتی که تو اکسس بدون N هم میشد جستجو کرد؟
نقل قول: مشکل در دستور جستجو
خطایی نمیگیره ! فقط نمیتونه حروف فارسی رو جست و جو کنه اون هم به خاطر Collation تعیین شده برای بانک هست .