چگونه می توان در adotable رکوردها را به صورت کامل حذف کردد ؟
چگونه می توان در adotable رکوردها را به صورت کامل حذف کردد ؟
با سلام
اگه بانک اطلاعاتیتون غیر foxpro باشه حذف شما فیزیکی است و کاملا حذف میشند
سلام
لطفا به من بگویید چگونه کلیه رکوردهای یک جدول ADO را می توان حذف کرد
این روش که در Help دلفی وجود دارد هم جواب نمی دهد. ADOTable1.DeleteRecords(arAll); ba tashakor
با تشکر
میتونی از یک حلقه تکرار استفاده کنی .
به این شکل :
Data.adotable1.first;
while not data.adotable1.eof do begin
data.adotable1.delete;
end;
data.adotable1.next;
موفق باشی .
ببخشید فلسفه اون next آخر چیه ؟ وقتی خالیه ؟
این next فلسفه ای نداره .
اینجا رکوردها تک تک پاک میشن .
کد گلادی رو با جازه تصحیح میکنم:نوشته شده توسط gladiator
Data.adotable1.first;
while not data.adotable1.eof do begin
data.adotable1.delete;
data.adotable1.next;
end;
اگه این next بعد از end باشه که فقط رکورد اول پاک میشه
گلادی جون با اجازه
از کوری استفاده کنه که چه بهتر من میخاستم کد رو تصحیح کنم
راست میگه جیرجیرک
delet from table1
راستی نگفتی منظورت از رکورد ها رو "کامل" پاک کردن چیه؟؟؟
با این کوری مشکلت حل شد؟
جناب McMilad هیچ نیازی به اون next نیست.
Data.adotable1.first;
while not data.adotable1.eof do
data.adotable1.delete;
وقتی رکوردی حذف می شود خودبخود بقیه رکوردها یکی به عقب می آید . یعنی کد شما رکوردها را یکی در میان پاک می کند و در ضمن به اون eof و while هم گوشه نظری بیفکنید :wink:
میلاد جون حالا چرا میزنی ؟
همش به خاطر 2 خط که جاشون اشتب شده ؟ خوب خودش اجراش میکرد میفهمید دیگه :mrgreen:
سلام گلادی جون
مشکل کدت تابلو بود اشکال لپی هست ولی این بنده خدا تازه وارده فکر کردم شاید متوجه نشه :wink: طفلکی تو 7تا فروم یهدونه ستاره هم نداره :!:
راستی اون next مشکلی ایجاد نمیکنه چون خیلی وقته که توی یکی از برنامه هام جدول رو اینجوری خالی کردم و مشکلی ایجاد نشد تاحالا
آقای گلادیاتور
سلام
منظورم از حذف کل رکوردها این است که همانطور که می دانید در اکسس با یک Query Append
می توان رکوردهایی را به یک جدول اضافه کرد بدون اینکه تکراری وارد جدول شود یعنی رکوردهایی را اضافه می کند که در جدول وجود ندارد
حالا من همین کار را می خواهم با دلفی انجام دهم به خاطر همین می خواهم اول همه رکوردهای جدول پاک بشه بعد رکوردهای جدید وارد جدول بشه
لطفا اگه راه راحت تری هم سراغ دارید ممنون می شم
ولی اگه هم ندارید لطفا همین را برایم بگویید
باتشکر فراوان از همگی دوستان
با سلام و با اجازه استادید ارجمند گلادیاتور و ....
دوست عزیز شما به سادگی میتوانید از دستورات SQL برای اینکار استفاده کنید. ببین جانم شما اگر بانک شما اگر تنها یک فیلد یا مجموع چند فیلد داشته باشد که در تمامی بانک منحصر به فرد باشد میتوانید از آن استفاده کنید(همانند فیلد نام یا عنوان و ...) به این صورت که ابتدا یک کوئری میزنید که رکورد وجود دارد یا خیر اگر وجود نداشت از دستور insert into استفاده کنید و اگر وجود داشت از دستور update . به این مثال توجه کنید:
select top 1 * from members where member='ali'
اگر تعداد رکوردها یک باشد یعنی وجود دارد که باید از دستور insert استفاده کنید و اگر نه که از دستور update بهره مند شوید
امیدوارم که فهمیده باشی
چرا اول جدول پاک نمی کنی بعد یک جدول بوجود بیاری بعد با یک گزارش فیلدها ی select اضافه کن
به این سادگی
1- اگه میخوای به جدولت رکورد تکراری اضافه نشه بر اساس کلید یا هم هر چی که داری یه کوئری بگیر
مثلا
Select * From نام جدول Where شرط
حالا اگه یه دونه رکورد برگردونه (حداقل) IsEmpty مقدارش False هستش
و اگرم رکوردی رو بر نگردونه مقدارش True هستش