View Full Version : روش جستجو در بانک
mm0000
جمعه 05 شهریور 1389, 21:28 عصر
سلام دوستان تاپیک دیگه ای باز کردم برای این منظور که میخوام اطلاعاتی مربوط به کاربر که توسط مدیر وارد میشه در دیتابیس ذخیره بشه (که تا اینجا در تاپیک قبل راهنمایی شد ) حالا میخوام این UserName و PW ذخیره شده توسط مدیر چک بشه و در صورت وجود و صحیح بودن وارد فرم بعدی بشه
یکی از دوستان راهنمایی کرد برای ایجاد فیلد Isadmin که مقدارش رو چک کنم ولی اگر میشه این چک کردن رو به صورت کد برام بنویسید خیلی ممنون ....
من در هنگام ذخیره سازی کاربر مقدارشو true میکنم ولی نمیدونم در Button وارد شدن به فرم و چک کردن Pw و UN چه کدی بنویسیم تا اون مقدار چک بشه
Delphi7_love
جمعه 05 شهریور 1389, 21:39 عصر
if ADOQuery2.Locate('fieldname',edit1.text,[])=true then
form2.Showl
البته روش های دیگری هم هست مثلا میتونید adoqquery رو filter کنید
adoquery1.filtered:=false;
adoquery1.filter:='fieldname=edit1.text';
adoquery1.filtered:=true;
برای مقایسه با دو فیلد کافیه از and استفاده کنید
Felony
جمعه 05 شهریور 1389, 21:49 عصر
به صورت زیر ، 2 شرط اول رو هم میتونید تو یک شرط بررسی کنید ( به وسیله And ) :
if ADOQuery2.Locate('UserName_Field',ED_UserName.Text ,[]) then
if ADOQuery2.FieldByName('Password').AsString= ED_Password.Text then
if ADOQuery2.FieldByName('isAdmin').AsBoolean= True then
Show_AdminForm.ShowModal
else
Show_UserForm.ShowModal;
soft-c
جمعه 05 شهریور 1389, 22:44 عصر
سلام
از این کد هم می توانی استفاده کنی :
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add ('select * from table-name where ((field-name1='''+edit1.text+''')and (field-name2='''+edit2.text+'''))');
ADOQuery1 .open ;
if adoquery1.recordcount=1 then
اجرای شرط
if adoquery1.recordcount=0 then
showmessage('a message')موفق باشید
Delphi7_love
جمعه 05 شهریور 1389, 22:51 عصر
سلام
از این کد هم می توانی استفاده کنی :
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add ('select * from enter where ((username='''+edit1.text+''')and (pasword='''+edit2.text+'''))');
ADOQuery1 .open ;
if adoquery1.recordcount=1 then
اجرای شرط
if adoquery1.recordcount=0 then
showmessage('a message')موفق باشید
در اینطور دستورات شرطی بهتره از یک شرط استفاده بشه چون هم بهینه نیست و هم خوانایی برنامه کمه
IF ADOQuery1.RecordCount>0 THEN
FORM1.SHOWMODAL
ELSE
SHOWMESSAGE('ÇØáÇÚÇÊ æÇÑÏ ÔÏå ÇÔÊÈÇå ÇÓÊ');
mm0000
جمعه 05 شهریور 1389, 23:12 عصر
به صورت زیر ، 2 شرط اول رو هم میتونید تو یک شرط بررسی کنید ( به وسیله And ) :
if ADOQuery2.Locate('UserName_Field',ED_UserName.Text ,[]) then
if ADOQuery2.FieldByName('Password').AsString= ED_Password.Text then
if ADOQuery2.FieldByName('isAdmin').AsBoolean= True then
Show_AdminForm.ShowModal
else
Show_UserForm.ShowModal;
عالی بود مرسی
فقط نمیدونم چرا قسمت ELSE بدون اینکه ایرادی بگیره کار نمیکنه ! یعنی کار بعدش رو که نمایش پیغام گزاشتم رو انجام نمیده!
Delphi7_love
جمعه 05 شهریور 1389, 23:26 عصر
عالی بود مرسی
فقط نمیدونم چرا قسمت ELSE بدون اینکه ایرادی بگیره کار نمیکنه ! یعنی کار بعدش رو که نمایش پیغام گزاشتم رو انجام نمیده!
پیغام بعد از ELSE فقط در صورتی است که فیلد ISadmin شما false باشه احتمالا فیلد Isname شما true است
در این دستور خط اول میره تو بانک دنبال نام کاربری مورد نظر میگرده ، حالا اگر این کاربر وجود داشت فیلد پسورد رو چک میکنه که با پسورد وارد شده یکی باشه ، حالا باز اگر این پسورد هم درست بود فیلد Isadmin چک میشه که آیا این کاربر مجاز به ورود به سیستم هست یا خیر .
اگر نیازی به این مجوز ندارید میتونید قسمت آخر رو حذف کنید
mm0000
شنبه 06 شهریور 1389, 14:49 عصر
سلام دوستان خواهشا نگید تاپیک جدا کننده بزن که بیچاره شدم فردا باید پروژ] رو ببرم داشتم روی فرم ها عکس میزاشتم که موقع اجرا از FORm 10 اررور میگیره فرم اصلا عکس نداره (روی این نزاشتم)
project 1.exe raised exception class eclassnot found with message'class timage not found'.
process stopped.use step or run to continiue
وقتی run میکنم میگه:
exception eclass not found in module project 1 .exe @ 0001c486
class timaine not found
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.