آموزش و سوالات مربوط به استفاده از دستورات Sql در دلفی

آموزشها تا اينجا چطور بود؟

  • برو بابا دلت خوشه

    رای: 0 0.0%
  • حيف فضايي كه به تاپيك اختصاص داده شده

    رای: 0 0.0%

  • مجموع رای دهندگان
    18

radicall

New Member
یک مشکل دیگه تو دستور sql

یک مشکل دیگه تو دستور sql
در ضمن تو این برنامه من یه adoquery گذاشتم تا با QuickRep1 بتونم اتصال برقرار کنم
و می خوام که کل اطلاعات جدول دیتابیس رو واسم چاپ کنه در واقع من میخوام دستور sql اون رو بنویسم که موندم چی بنویسم
البته من دستور select * from azviat رو نوشتم که تمام اونها رو چاپ وگزاشگیری کنه اما جواب نداد
لطفا در مورد مشکل من راهنمایی کنید ممنون
 

sempai saleh

New Member
سلام
یکی دیگه از دستوراتی که زمان جستجو خیلی کارآمد هست، دستور LIKE هست که به همراه where استفاده میشه. این دستور برای زمانی هست که ما به دنبال تمام مقادیری هستیم که با یک یا چند حرف مشخص شروع میشه و یا تمام میشه، و یا حتی این چند حرف میتونه جزیی از نتیجه باشه.

شکل کلی دستور:

کد:
[LEFT]SELECT column FROM table
WHERE column LIKE pattern[/LEFT]

در قسمت pattern مشخص میکنیم که نتیجه حاصل بر چه اساسی باشه.
به مثال توجه کنید:

کد:
[LEFT]with ADOQuery1 do begin
close;
sql.Clear;
sql.Add('select * from inventory where name like "'+Edit6.Text+'%"');
open;
end;[/LEFT]

فرض میکنیم که مقادیر فیلد name قطعات سخت افزاری هستند. در مثال بالا اگر در edit1 مقدار "مانیتور" وارد شه، تمام مقادیری که با "مانیتور" شروع شده مثل "مانیتور Samsung، مانیتور LG ، مانیتور BenQ و ..." به نمایش در میاد.
با کمی خلاقیت اگر این کد رو در رویداد OnChange یک ادیت قرار بدیم با تایپ اولین حرف مثلا "م" تمام مقادیر "مانیتور، ماوس، مادر بورد" و بقیه مقادیری که با "م" شروع میشه به نمایش در میاد.

اگر به محل کاربرد "%" دقت کنید، خودتون میتونید شرط هایی که با نیاز شما سازگارتر هستند بنویسید.

پیروز باشید.

با سلام خدمت دوستان بنده از همین کد استفاده کردم ولی ارور میده میگه :"invalid column name 't'"
حالا T همون مقداریه که تو edit6 قرار دادم. این یعنی چی؟
 

sempai saleh

New Member
با سلام خدمت دوستان بنده از همین کد استفاده کردم ولی ارور میده میگه :"invalid column name 't'"
حالا T همون مقداریه که تو edit6 قرار دادم. این یعنی چی؟

با سلام
خودم گشتم پیدا کردم. دستور رو باید به شکل زیر تغییر بدین. یعنی باید ورودی ها رو از طریق پارامتر بگیرین.
کد:
ADOQuery1.SQL.Add('select * from darkhast_DTL where (kala LIKE :Paramkala) and (mande>0) and (tari_tahvil<:paramdate) ORDER BY tari_tahvil');
ADOQuery1.Parameters.ParamByName('Paramkala').Value := '%'+trim(edit1.Text)+'%';
ADOQuery1.Parameters.ParamByName('Paramdate').Value := datetostr(date());
 
سلام
از مباحث بسیار کاربردی و خوبتان ممنون
من تازه کار برنامه نویسی با دلفی و sql را شروع کرده ام به خاطر همین چند اشکال دارم می خواستم اگه ممکنه کمکم کنید
اولین سوالم اینه که من می خواهم در فرم دلفی از یک عنصر مثل checklistbox استفاده کنم که کاربر بتونه چند تا از آیتم ها رو که بخواد انتخاب کنه اشکال اینجاست که checklistbox خاصیت های Datafield و Datasource را ندارد و من نمی دانم چطور باید checklistbox را به sql متصل کرد
اشکال دوم: آیتم های موجود در checklistbox باید از یک جدول از sql خوانده شوند و آیتم هایی که کاربر انتخاب می کند باید به صورت string در یک فیلد در sql ذخیره شوند
اشکال سوم: اگر در یک فرم دیگه در یک combobox یا checklict box بخواهیم بگوییم که آیتم هایی که در checklistbox قبلی انتخاب شده اند را نشان بده
خواهش میکنم اگر امکان داره لطف کنید دستوراش رو بگذارید
با تشکر از راهنماییتان
 
باسلام.برای دلفی 10و1 کدوم ورژن اسکیوال وپیشنهادمی کنین؟
من یه سوال درمورد رجیستری ودلفی داشتم.ممنون میشم کمکم کنین.
باسلام.درخواندن کدهاازرجیستری به یه مشکل برخوردکرده ام.می خوام شماره سریال سی پی یو راازآدرس HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion بخونه ودریک ادیت بریزه متاسفانه باعملگر باتن هیچ اتفاقی نمی افته.
 

جدیدترین ارسال ها

بالا