PDA

View Full Version : حذف رکورد



amin_ghn
پنج شنبه 18 فروردین 1390, 14:28 عصر
سلام
رکوردها در جدول اکسس حذف میشه ولی در dbgrid نشون نمیده که حذف شده.
این دستورات:
با این دستورات insert میکنم
adotable6.Insert;
adotable6['idfactor']:=adotable8['idfactor'];
adotable6['nservice']:=ADOQuery1['nservice'];
adotable6['pservice']:=ADOQuery1['pservice'];
adotable6.Post;

با اینا delete
form5.ADOCommand1.CommandText:='delete from factorjozm';
form5.ADOCommand1.Execute;

وارد کردن در جدول در dbgrid نمایش میده همون لحظه ولی حذف کردنو نه.
باید یه بار از برنامه خودم خارج شم تا حذفیاتو نشون بده
چی کار کنم؟

pezhvakco
پنج شنبه 18 فروردین 1390, 17:26 عصر
این کد دستور رو پس از کد دستور پاک کردن بنویسین :
try
ADOTable6.Requery();
except on E: Exception do
end;

amin_ghn
پنج شنبه 18 فروردین 1390, 17:32 عصر
این دستورو که گفتی گذاشتم ولی باید باتتون رو چند بار بزنم تا در اعمال بشه
چی کار کنم ؟

pezhvakco
پنج شنبه 18 فروردین 1390, 17:42 عصر
اگه جدول شما به همین ADOTable6 وصل باشه نیازی نیست چند بار این کار رو انجام بدین .
شما میتونی با غیر فعال و فعال کردن ارتباط نیز این کار رو انجام بدین :
ADOTable1.Active:=False;
ADOTable1.Active:=True;

amin_ghn
پنج شنبه 18 فروردین 1390, 18:00 عصر
اگه جدول شما به همین ADOTable6 وصل باشه نیازی نیست چند بار این کار رو انجام بدین .
شما میتونی با غیر فعال و فعال کردن ارتباط نیز این کار رو انجام بدین :
ADOTable1.Active:=False;
ADOTable1.Active:=True;
ممنون از کمکت ولی اینو هم گذاشتم باز نشد چند باز باید باتتون رو بزنم تا حذف شه

amin_ghn
پنج شنبه 18 فروردین 1390, 20:41 عصر
سلام
اینطور دارم INSERT میکنم وقتی در DBGRID دوبار کلیک میکنم

adotable6.Insert;
adotable6['idfactor']:=adotable8['idfactor'];
adotable6['nservice']:=ADOQuery1['nservice'];
adotable6['pservice']:=ADOQuery1['pservice'];
adotable6.Post;


ولی به همین روش که میخوام DELET کنم نمیشه
روشم اشتباست؟ میخوام وقتی رو یه ردیف در DBGRID کلیک میکنم اون سطر حذف بشه.
راهنمایی مکنید؟
از اکسس 2007
و دلفی 2010 استفاده میکنم.

pezhvakco
پنج شنبه 18 فروردین 1390, 20:47 عصر
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ADOTable1.Delete;
end;

rk1983xx
سه شنبه 23 فروردین 1390, 02:08 صبح
اگه جدول شما به همین ADOTable6 وصل باشه نیازی نیست چند بار این کار رو انجام بدین .
شما میتونی با غیر فعال و فعال کردن ارتباط نیز این کار رو انجام بدین :
ADOTable1.Active:=False;
ADOTable1.Active:=True;

من هم همین مشکل رو داشتم (هم در اینسرت و هم در دلیت) و فقط با همین روش تونستم حلش کنم
ولی برام خیلی مسخره است که بعد از اجرای ADOCommand جداولم با Refresh و Requery بروز نمیشن
کسی میدونه علت اصلیش چیه ؟
آیا اصلا این باز و بسته کردن جداول منطقیه ؟
علت بروز این اشکال چیه ؟
من هم با Access کار میکنم هم با Sql Server 2005 ولی تا اونجائی که میدونم این اشکال مربوط به خود ADO هست
ممنون میشم راهنمائیی کنید
خیلی حیاتیه - چون دارم برنامه حسابداری مینویسم میترسم این مسئله باعث بروز اشکالات پیش بینی نشده زمان اجرا بشه

amin_ghn
چهارشنبه 24 فروردین 1390, 15:22 عصر
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ADOTable1.Delete;
end;






از این دستور استفاده میکنم واسه حذف رکورد .واسه حذف رکورد تکراری پیغام خطای کلید اصلی میده و کله سطرح های مشابه رو در اکسس حذف میکنه ولی در dbgrid نشون نمیده. من میخوام یک رکورد حذف بشه .چی کار کنم؟ جدولم کلید اصلی نداره.
مرسی. واسه حذف رکورد غیر تکراری هیچ مشکلی ندارم.