PDA

View Full Version : حذف رکوردها در ADOtable



nasr
دوشنبه 01 دی 1382, 13:48 عصر
چگونه می توان در adotable رکوردها را به صورت کامل حذف کردد ؟

Mahdavi
دوشنبه 01 دی 1382, 13:59 عصر
با سلام
اگه بانک اطلاعاتیتون غیر foxpro باشه حذف شما فیزیکی است و کاملا حذف میشند

nasr
دوشنبه 01 دی 1382, 21:34 عصر
سلام
لطفا به من بگویید چگونه کلیه رکوردهای یک جدول ADO را می توان حذف کرد
این روش که در Help دلفی وجود دارد هم جواب نمی دهد. ADOTable1.DeleteRecords(arAll); ba tashakor
با تشکر

Gladiator
دوشنبه 01 دی 1382, 22:57 عصر
میتونی از یک حلقه تکرار استفاده کنی .

به این شکل :


Data.adotable1.first;
while not data.adotable1.eof do begin
data.adotable1.delete;
end;
data.adotable1.next;

موفق باشی .

Hidarneh
سه شنبه 02 دی 1382, 11:43 صبح
ببخشید فلسفه اون next آخر چیه ؟ وقتی خالیه ؟

Gladiator
سه شنبه 02 دی 1382, 12:37 عصر
این next فلسفه ای نداره .

اینجا رکوردها تک تک پاک میشن .

سه شنبه 02 دی 1382, 12:59 عصر
میتونی از یک حلقه تکرار استفاده کنی .

به این شکل :


Data.adotable1.first;
while not data.adotable1.eof do begin
data.adotable1.delete;
end;
data.adotable1.next;

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


Data.adotable1.first;
while not data.adotable1.eof do begin
data.adotable1.delete;
data.adotable1.next;
end;

اگه این next بعد از end باشه که فقط رکورد اول پاک میشه
گلادی جون با اجازه

jirjirakk
سه شنبه 02 دی 1382, 13:09 عصر
من موندم چرا از کوئری استفاده نکنه :?:

سه شنبه 02 دی 1382, 13:32 عصر
از کوری استفاده کنه که چه بهتر من میخاستم کد رو تصحیح کنم
راست میگه جیرجیرک

delet from table1
راستی نگفتی منظورت از رکورد ها رو "کامل" پاک کردن چیه؟؟؟
با این کوری مشکلت حل شد؟

Hidarneh
سه شنبه 02 دی 1382, 13:55 عصر
جناب McMilad هیچ نیازی به اون next نیست.

Data.adotable1.first;
while not data.adotable1.eof do
data.adotable1.delete;
وقتی رکوردی حذف می شود خودبخود بقیه رکوردها یکی به عقب می آید . یعنی کد شما رکوردها را یکی در میان پاک می کند و در ضمن به اون eof و while هم گوشه نظری بیفکنید :wink:

Gladiator
سه شنبه 02 دی 1382, 16:21 عصر
میلاد جون حالا چرا میزنی ؟

همش به خاطر 2 خط که جاشون اشتب شده ؟ خوب خودش اجراش میکرد میفهمید دیگه :mrgreen:

سه شنبه 02 دی 1382, 16:30 عصر
سلام گلادی جون
مشکل کدت تابلو بود اشکال لپی هست ولی این بنده خدا تازه وارده فکر کردم شاید متوجه نشه :wink: طفلکی تو 7تا فروم یهدونه ستاره هم نداره :!:
راستی اون next مشکلی ایجاد نمیکنه چون خیلی وقته که توی یکی از برنامه هام جدول رو اینجوری خالی کردم و مشکلی ایجاد نشد تاحالا

nasr
سه شنبه 02 دی 1382, 18:23 عصر
آقای گلادیاتور
سلام
منظورم از حذف کل رکوردها این است که همانطور که می دانید در اکسس با یک Query Append
می توان رکوردهایی را به یک جدول اضافه کرد بدون اینکه تکراری وارد جدول شود یعنی رکوردهایی را اضافه می کند که در جدول وجود ندارد
حالا من همین کار را می خواهم با دلفی انجام دهم به خاطر همین می خواهم اول همه رکوردهای جدول پاک بشه بعد رکوردهای جدید وارد جدول بشه
لطفا اگه راه راحت تری هم سراغ دارید ممنون می شم
ولی اگه هم ندارید لطفا همین را برایم بگویید
باتشکر فراوان از همگی دوستان

hr110
چهارشنبه 03 دی 1382, 10:24 صبح
با سلام و با اجازه استادید ارجمند گلادیاتور و ....
دوست عزیز شما به سادگی میتوانید از دستورات SQL برای اینکار استفاده کنید. ببین جانم شما اگر بانک شما اگر تنها یک فیلد یا مجموع چند فیلد داشته باشد که در تمامی بانک منحصر به فرد باشد میتوانید از آن استفاده کنید(همانند فیلد نام یا عنوان و ...) به این صورت که ابتدا یک کوئری میزنید که رکورد وجود دارد یا خیر اگر وجود نداشت از دستور insert into استفاده کنید و اگر وجود داشت از دستور update . به این مثال توجه کنید:
select top 1 * from members where member='ali'
اگر تعداد رکوردها یک باشد یعنی وجود دارد که باید از دستور insert استفاده کنید و اگر نه که از دستور update بهره مند شوید

امیدوارم که فهمیده باشی

hamidrezaA
پنج شنبه 04 دی 1382, 10:15 صبح
چرا اول جدول پاک نمی کنی بعد یک جدول بوجود بیاری بعد با یک گزارش فیلدها ی select اضافه کن

به این سادگی

jirjirakk
پنج شنبه 04 دی 1382, 14:18 عصر
1- اگه میخوای به جدولت رکورد تکراری اضافه نشه بر اساس کلید یا هم هر چی که داری یه کوئری بگیر

مثلا

Select * From نام جدول Where شرط

حالا اگه یه دونه رکورد برگردونه (حداقل) IsEmpty مقدارش False هستش
و اگرم رکوردی رو بر نگردونه مقدارش True هستش