View Full Version : سوال: چرا dataset in not in edit or insert mode ؟؟؟؟؟؟؟؟
_abiriamir
شنبه 10 مرداد 1388, 14:26 عصر
:متفکر::متفکر:عبارت زیر یعنی چی و چرا مدام با اون روبرو میشم؟:متفکر::متفکر:
dataset in not in edit or insert mode
_abiriamir
شنبه 10 مرداد 1388, 14:35 عصر
راستی راه حلش چیه؟
mohammad_alikhani
شنبه 10 مرداد 1388, 15:55 عصر
شما دارید یک DataSet رو در حالتی که Close هست تغییر می دهید. حالا یا می خواهید رکوردی از آن را حذف کنید، یا می خواهید رکوردی به آن اضافه کنید و یا رکوردی را در آن ویرایش کنید.
راه حل آن هم Open کردن آن DataSet می باشد.
_abiriamir
شنبه 10 مرداد 1388, 16:45 عصر
close هست؟
نه
دیتابیسم open هست ولی بازم . . .
Ahmad Chehreghani
شنبه 10 مرداد 1388, 23:15 عصر
عبارت زیر یعنی چی و چرا مدام با اون روبرو میشم؟
dataset in not in edit or insert mode
به نظر بنده اگه شما برنامه رو تريس ميکرديد به جواب ميرسيديد. وقتي در برنامه، در شرايطي يک خطايي رخ ميده ، پس دوباره اون خطا در همون شرايط بايد رخ بده و شما بايد اون شرايط را آماده کنيد تا بفهميد خطا از کجا بوده.
معمولا وقتي برنامه نويس ها با اين پيغام مواجه ميشن که ديتابيس در حال Edit يا Insert نباشه و دستور تغيير داده باشن، مانند Post که يا بايد قبل از دستور Post شرط بزارن مثل کد زير يا ببينن کجا دستور Edit ، Insert و يا Append رو فراموش کردن که بزارن.
if (ADOTable1.State=dsEdit) or (ADOTable1.State=dsInsert) then
ADOTable1.Post;
اگر مشکلتون هنوز هم پابرجا هست يک بار برنامه را تريس کنيد و خطي که اين خطا درش رخ ميده رو اينجا بزاريد
موفق باشيد
afrooz_rahmati63@yahoo.com
شنبه 10 مرداد 1388, 23:32 عصر
یک راه حل ساده...فقط وقتی که نیاز به Edit يا insert در dataset دارید خصوصیت AutoEdit مربوط به Dataset را true كنيد...در حالت نرمال AutoEdit را False كنيد.. و در ضمن حتما قبل از Insert & Edit از آنچه Mr Ahmed گفتن استفاده کنید.
daffy_duck376
یک شنبه 11 مرداد 1388, 08:32 صبح
در جایی که این خطا رو میگیرید بالای آن این کد را اضافه کن درست میشه
if .table name.Modified then
_abiriamir
یک شنبه 11 مرداد 1388, 12:11 عصر
یک راه حل ساده...فقط وقتی که نیاز به Edit يا insert در dataset دارید خصوصیت AutoEdit مربوط به Dataset را true كنيد...در حالت نرمال AutoEdit را False كنيد.. و در ضمن حتما قبل از Insert & Edit از آنچه Mr Ahmed گفتن استفاده کنید.
چجوری میشه این کار رو کرد؟
afrooz_rahmati63@yahoo.com
یک شنبه 11 مرداد 1388, 20:13 عصر
datasource شما يك خصوصيت به نام AutoEdit داره در ابتدا اون را false قرار بدید..هنگامی که کاربر روی دکمه Edit كليك كند مقدار آن را datasource1.AutoEdit := true قرار دهید...البته راه حل درست این است که اين عمل را در رویداد Adoquery1.AfterEdit انجام دهید...so..
procedure TForm1.TAdoQuery1AfterEdit(DataSet: TDataSet);
begin
; Datasource1.AutoEdit := True
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.