PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : فیلتر کردن اطلاعات بانک اطلاعاتی



msi1393
24 / December / 2014, 09:40 PM
با سلام و عرض خسته نباشید به همه دوستان
من یه برنامه دارم مینویسم که بانک اطلاعاتیش Sql هست.
و برای فیلتر کردن اطلاعات به کمک نیاز دارم
میخوام به این صورت عمل کنم که وقتی داخل Edit حرف اول یک اسم وارد میشه جدول بر اساس اون فیلتر بشه، (برای مثال وقتی حرف آ وارد میشه تمام رکوردهای از جدول که فیلد مورد نظر با حرف آ شروع میشه فیلتر بشن)
ممنون میشم اگه راهنمایی کنید.

meyti
24 / December / 2014, 11:11 PM
با سلام
با استفاده از کوئری میشه این کارو کرد - مثل کد زیر



adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT * from tablename where (((feild1) like N''%'+Edit1.Text+'%''));');
adoquery1.Open;

b_e_shamlu
31 / December / 2014, 09:33 AM
با سلام
دوست عزیز همانطور جناب مهندس meyti (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>) دستور را برای شما ارسال کردن
فقط این موضوع را خدمت شما عرض کنم که علامت % در دوطرف متن شما قرار می گیرد.وکار او در این حالت این است که تمامی رکوردهایی که حرف آ در آن بکار رفته است و یادتان باشد تمام رکوردهای که اون حرف درش وجود داشته باشد
اگر میخواهید این حرف در آخر یا اول یا وسط کلمات رکورد باشد باید از این علامت به درستی استفاده کنید این علامت اعلام میدارد هرچی باشد به (علاوه فقط این کلمه) امید است که به درستی برای شما توضیح داده باشم با عرض پوزش از مهندس عزیز چون من خود وقتی این دستور را استفاده میکردم با این مشکل برخورد نمودم و تا مطلع شدم خیلی طول کشید.
:o

flightsazan
02 / December / 2015, 08:19 PM
سلاماین پست کمی قدیمی است ولی سوالی دارم وقتی کاراکتر ها کوچک و بزرگ هستند فیلتر درست در نمی آید مثلا در جدول اینگونه نوشته باشیم:Table ودر فیلتر بنویسیم table یا TABLE جدول خالی در می اید و دچار خطا میشه!چطور کاری کنیم به بزرگی و کوچکی حروف حساس نباشه چون معلوم نیست در جدول هم چگونه نوشته شده!
مرسی حسن

flightsazan
02 / December / 2015, 08:21 PM
دستور کار شده:

procedure TForm1.ADOQuery2FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
ACCEPT:= (
(FORM1.Edit1.Text='')OR
(POS(FORM1.Edit1.Text,FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)>0))
end;

مجید
02 / December / 2015, 08:33 PM
یاید از کوئری استفاده کنید
مانند مثالی که در بالاتر زده شده است
برای اینکه حروف بزرگ و کوچک را هم شامل شود باید از توابع uppercase و lowercase استفاده کنید

flightsazan
04 / December / 2015, 06:09 PM
در فیلتر جدول با دستور LIKE وقتی مورد در جدول نباشه خطا می ده!
شکل دستور:

ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQUERY2.SQL.Add(('select * from SUBMENUE where name like "'+Edit1.Text+'%"'));
ADOQuery2.Open;
FORM1.TreeView1.Items.Clear;
FORM1.Timer6.Enabled:=TRUE;
چطور فیلتر را تنظیم کنیم که اگه مورد جستجو در جدول نباشه اتفاقی هم نیفته!
مرسی
حسن

مجید
05 / December / 2015, 12:54 AM
اول بفرمایید دقیقا چه خطایی میده . ظاهرا دستورات ایرادی نداره . شاید خطایی که فرمودید مربوط به قسمت دیگری باشه . لطفا تصویر یا متن خطا را اینجا بگذارید

flightsazan
07 / December / 2015, 06:28 PM
با سپاس:

flightsazan
07 / December / 2015, 06:31 PM
تصویر خطا از محیط دلفی 2010 در حال اجرا:

flightsazan
07 / December / 2015, 06:34 PM
البته از دستور:

ACCEPT:=(
(FORM1.Edit1.Text='')OR
(POS(FORM1.Edit1.Text,FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)>0))
هم استفاده کردم ولی مشکل اینکه در این حالت در انگلیسی فرقی بین کاراکتر ها قایل میشه مثلا حروف بزرگ بزنید دیگه حروف کوچک را نشان نمی ده!
مرسی
حسن

مجید
07 / December / 2015, 10:29 PM
از این تصاویر چیزی معلوم نیست اگه میتونید سورس را بگذارید تا بدقت دیباگ کنم

meyti
08 / December / 2015, 01:21 AM
تصویر خطا از محیط دلفی 2010 در حال اجرا:

سلام
این خطا مربو به سینتکس بوده و یه جایی در کدها اشتباه تایپی دارید
احتمالا بجای ' که دوبار پشت سر هم هستند از " استفاده شده ؟
با همون دستور حتی اگه چیزی پیدا نشه نباید ارور بده

flightsazan
08 / December / 2015, 02:47 AM
سلام
فایل اضافه گردید
در جستجو با فیلتر خود دلفی و اسکیوال یا جواد ناکافی است و یا خطا دارد مثلا فقط کاراکتر های بزرگ دیده می شود.مثال: با گزینه فیلتر filterrecord در ado
مرسی
حسن

مجید
08 / December / 2015, 04:00 AM
سورس ناقص بود . Form2 و کامپوننت های Skin در سورس وجود نداشت.
دوست عزیز حدود یک ساعت بین کد های شما چرخیدم و حقیقتا نفهمیدم هدفتان از این برنامه چه بود!
اگر تازه کارید و در حال یادگیری هستید که هیچ. به شما بابت پشتکارتان خسته نباشید میگویم و امیدوارم در آینده یک برنامه نویس پنجه طلایی بشوید.

ولی اگر قرار است این پروژه را به مشتری تحویل دهید و بابت آن وجهی دریافت کنید به شما اکیدا توصیه میکنم منصرف شوید . جسارتا بنده با حدود 14 سال سابقه در برنامه نویسی جرات نمیکنم برای یک پروژه ساده هم با روش شما کد نویسی کنم. مطمئن باشید عواقب ویرایش این کد دیر یا زود دامنگیر خودتان خواهد شد.

meyti
08 / December / 2015, 10:01 AM
سلام - فایل ناقص آپلود شده - بماند
دستور زیر رو تست کردم به حروف بزرگ و کوچک حساس نیست و همه رو میاره .


ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from table1 where field1 like ''%'+Edit1.Text+'%''');
ADOQuery1.Open;

flightsazan
08 / December / 2015, 11:29 AM
تو انگلیسی
خطا میده
مثلا اگه حرف مورد جستجو در جدول نباشه و کاراکترهای بزرگ و کوچک
مرسی

flightsazan
08 / December / 2015, 11:44 AM
این هم با توضیحات در کنار کدها اضافه کردم بدون کامپوننت راستی دلفی من 2010 است
مرسی
حسن

مجید
08 / December / 2015, 11:55 AM
سلام
لطفا به این چند تا لینک یه نگاهی بنداز


<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span> (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)


<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>


<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>

<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>

امیدوارم براتون مفید باشه

و در مورد مشکل کوئری شما:
فکر میکنم باید برای جستجوی یک عبارت به صورت کوچک و بزرک از دو شرط like استفاده کنی مثل زیر:




select * from table1 where field1 like '[A]%' or field1 like '[a]%'



و باید مقدار A و a را با کاراکتر تایپ شده در Edit1.txt جایگزین کنی

در مورد اصول کد نویسی که سوال کردید هم بد نیست در گوگل جستجویی در میان سایت های فارسی زبان بیاندازید . حتما منابع خوبی پیدا خواهید کرد. گوگل برای برنامه نویس مثل عصای سفید برای نابیناست. من که خیلی ازش استفاده میکنم. برای سر نخ هم بهتره دنبال شیء گرایی بگردید.

موفق باشید

flightsazan
08 / December / 2015, 12:30 PM
چشم می بینم مرسی وقت می زارید
حسن

meyti
08 / December / 2015, 01:40 PM
تو انگلیسی
خطا میده
مثلا اگه حرف مورد جستجو در جدول نباشه و کاراکترهای بزرگ و کوچک
مرسی

سلام مجدد /
حروف فارسی که کوچک و بزرگ که نداره ! منم با انگلیسی تست زدم ! درست جواب میده .