PDA

View Full Version : سوال: جستجو كردن بانك با دو فيلد



amir190d
پنج شنبه 07 شهریور 1387, 10:59 صبح
با سلام خدمت دوستان در ابتدا من ازشما معذرت مي خواهم كه تاپيك جديد باز كردم چون نمي دونستم سوالم كجا بپرسم من يك بانك دارم كه با query به ان وصلم يك دكمه سرچ گذاشتم و دو اديت باكس روي فرم گذاشتم يكي فاميل و يكي اي دي كه اي دي كليد اصلي برنامه است حالا مي خوام اگه در بانك دو فاميل عليزاده بود و ما عليزاده با شماره اي دي 1 مي خواستيم جستجو دقيقتر بشه و هم فاميل و هم اي دي راسرچ كنه و فاميل مورد نظر با تمام مشخصاتش به من بده حالا بلد نيستم چه كدي بنويسم هر كاري كردم نشد اگه كسي بلده يكه كمكي بكنه:گریه::عصبانی++::اشتباه:

hadisalahi2
پنج شنبه 07 شهریور 1387, 11:08 صبح
اول اینکه دشمنت شرمنده.
دوم کد


ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.text:='select * from TableName where (Filed1 like :a) and (Filed2 like :b)';
ADOQuery1.Parameters.ParamByName('a').Value:=Edit1 .text
ADOQuery1.Parameters.ParamByName('b').Value:=edit2 .text
ADOQuery1.Active:=True;


سوم:
به جای Tablename نام جدولت رو بزار و به جای Filed1,2 نام فیلدهاتو بزار.
یا حق

Hsimple11
پنج شنبه 07 شهریور 1387, 11:35 صبح
کاربر amir190d سعی کنید قبل از ایجاد هر سوال اول در قسمت جستجوی سایت، در همین تالار، کلمات کلیدی سوال خودتون رو پیدا کنید و جستجو کنید. این سایت سالهاست که دایره و سوالات زیادی مطرح شده و جواب داده شده. برای همین اگه قرار باشه باز هم سوالات تکراری که جواب کاملشون در سایت وجود داره مطرح بشه....

amir190d
پنج شنبه 07 شهریور 1387, 12:15 عصر
با سلام خدمت دوستان ببخشيد من سوالم را اينجا مطرح كردم از اين به بعد سعي مي كنم سوالم را در جاي خودش بپرسم با تشكر

amir190d
پنج شنبه 07 شهریور 1387, 13:01 عصر
اقا هادي من اين كد در بانكم كه DBISAMQUERY قرار دادم ولي ارور داد من نام از نوع استرينگ هست و اي دي از نوع اينيجر لطفا را هنمايي نماييد و كلمه a,b در كد كه گفتيد چي هست با تشكر از شما




DBISAMQuery1.Close;
DBISAMQuery1.SQL.Clear;
DBISAMQuery1.sql.text:='select * from abfa1 where (Name like :a) and (Idnumber like :b)';
DBISAMQuery1.ParamByName('a').Value:=Edit1.text;
DBISAMQuery1.ParamByName('b').Value:=Edit2.Text;
DBISAMQuery1.Active:=True;

hadisalahi2
پنج شنبه 07 شهریور 1387, 15:15 عصر
دوست عزیز در صورتی که خطای داده شده مربوط به تبدیل نوع میشه شما باید برای تبدیل integer به string از تابع inttostr استفاده کنی و برای تبدیل برعکس آن از تابع strtoint.
a,b دو پارامتر هستند که شما در دستور sql اونها رو اضافه میکنید تا اینکه بتونید از مقادیر متغیر و مقادیری که از طرف کاربر داده میشه عمل مقایسه رو انجام بدید. مثلا a یک پارامتره که شما مقادیر edit1.text رو داخل اون میریزید. در خط 4 و 5 به پارامترهای a,b مقدار داده شده.
در ضمن در صورتی که برنامه ای مینویسی و خطا میده بهتره متن خطا رو هم ذکر کنی تا دوستان بتونند زودتر کمک کنند.
یا حق.

amir190d
پنج شنبه 07 شهریور 1387, 16:00 عصر
سلام اقا هادي واقعا شرمنده خيلي ممنون كمكم مي كنيد اينم متن خطا


11949 # project project.exe rasied exception class EDatabase Error with message 'DBISAMEngine Error
parsing error-expected NULL, Memo Expression but instead found Idnumber in Select SQL Statement at line 1 column 46 .process stopped ' , باز هم از لطفتان ممنون

amir190d
پنج شنبه 07 شهریور 1387, 19:04 عصر
كسي نيست به سوال من جواب بده

hadisalahi2
پنج شنبه 07 شهریور 1387, 19:39 عصر
دوست عزیز احتمالا شما می خواهید مقادیر یک کنترل Memo را با فیلد ID مقایسه کنید و همچنین به احتمال قوی داخل اون کنترل مقادیر NULL قرار داره .
حالا اگه خیلی کارت فوریه برنامت رو آپلود کن تا برات چک کنم ، این طوری سریعتر مشکلت حل میشه.
یا حق