PDA

View Full Version : شرط در صورت حذف مطالب دیتا بیس



yosefyosef
شنبه 18 مهر 1394, 11:33 صبح
با سلام وخسته نباشید
من برنامه جهت جستجو انجام دادم ولی با مشکل مواجه شدم مشکلم این هست که می خواهم شرط کنم اگر دیتا خالی شد بعد نتیجه مطالب جستجو داخل همان دیتا بگذارد
توضیح : شرط کنم (اگر دیتا خالی شد) از چه کدی استفاده کنم
بنده این کد را نوشتم


ADOCommand1.CommandText:='delete * from search';
ADOCommand1.Execute;

ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.add('INSERT INTO search SELECT * FROM book Where 1=1'; ');
ADOQuery1.Active:=true;


نتیجه جستجو اگر دیتا بیس خالی باشد جواب درست است اما اگر دیتا بیس خالی نباشد نتیجه اشتباه می شود وعلت این اشتباه اینکه هنوز دیتا حذف نشده مطالب جدید داخل دیتا اضافه می شود

elena
شنبه 18 مهر 1394, 14:27 عصر
فکر کنم باید از تریگر استفاده کنید

ابوالفضل عباسی
شنبه 18 مهر 1394, 15:10 عصر
دوست عزیز برای اینکه راحت تر باشی فرمان های sql رو این طوری بنویس.

ADOQuery1.close;
ADOQuery1.sql.text:='Insert into search select * from book where 1=1';
ADOQuery1.open;

بعد برای فرمان خالی کردن دیتابیس از این استفاده کن

ADOCommand1.CommandText:='delete From search';

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

Mahmood_M
شنبه 18 مهر 1394, 17:28 عصر
نمی دونم از چه بانکی استفاده می کنید اما بهتره که از Transaction استفاده کنید و عملیات مورد نظر رو پشت هم انجام بدید
مثلا در MySQL :

START TRANSACTION;
DELETE FROM Search;
INSERT INTO ...;
COMMIT;
یا اینکه یک Stored Procedure بنویسید و داخل اون این Transaction رو پیاده سازی کنید

ابوالفضل عباسی
یک شنبه 19 مهر 1394, 13:16 عصر
نمی دونم از چه بانکی استفاده می کنید

احتمالا بانکی که این کاربر استفاده میکنند(با توجه به فرمانی که نوشته اند)access باشه.

yosefyosef
دوشنبه 27 مهر 1394, 02:58 صبح
با تشکر ، دوستان از دیتای اکسس استفاده می کنم ومطالبی که در table book جستجو كردم در table search گذاشته می شود
مشکلم اینکه وقتی جستجوی جدید انجام می دهم ومی خواهم اول مطالب جستجوی قدیمی را حذف کنم که در table search موجود می باشد وبعد مطالب جدید در table search بگذارم با کدی که نوشته ام نتیجه درست جواب نمی دهد ، فکر می کنم علت ان اینکه هنوز table search خالی نشده مطالب جستجوی جدید در ان گذاشته می شود
لذا اولا باید table search کاملا حذف شود وبعد مطالب جدید در ان اضافه شود
چه پیشنهادی میدهید

Mahmood_M
چهارشنبه 29 مهر 1394, 19:12 عصر
از Transaction استفاده کنید !