PDA

View Full Version : يك مشكل عجيب در ايجاد ركورد در بانك و حذف ان



ali_mohamadi8928
پنج شنبه 04 مهر 1387, 02:26 صبح
سلام

بچه ها من با فرمانهاي زير يك ركورد به بانكم اظافه ميكنم


DataModule2.ADOTable2.Open;
DataModule2.ADOTable2.Edit;
DataModule2.ADOTable2.Insert;

بعد مقادير دلخواه رو وارد ميكنم و بعدش با فرماني زير مقادير رو ثبت ميكنم .



DataModule2.ADOTable2.Post;


تا اينجا هيچ مشكلي نيست و حتي مقادير با موفقيت ثبت ميشه :لبخند:

حالا وقتي ميخوام همون ركوردي كه الان تازه درست كردم رو حذف كنم نميزاره حذفش كنم و پيغام زير رو ميده


Row cannot be located for updating. Some values may have been changed since it was last read.

در صورتي كه ركوردهايي كه قبلا ثبت كردم به راحتي حذف ميشه ولي فقط همينه كه تازه ثبت كردم حذف نميشه :اشتباه: ولي وقتي يك بار برنامه رو ميبندم و باز ميكنم ميتونم همون ركورد رو مثل بقيه ي ركوردهايي كه قبلا ثبت شده حذف كنم و مشكل نميگيره :لبخندساده:

به نظرتون اين مشكل براي چي به وجود مياد :متفکر:

Mahmood_M
پنج شنبه 04 مهر 1387, 02:43 صبح
مفهوم این کد چیه ؟ :

DataModule2.ADOTable2.Edit;
DataModule2.ADOTable2.Insert;
چه لزومی داره که برنامه اول به حالت ویرایش بره و بعد به حالت Insert هم بره ؟!
فقط باید یکی از این دستورات رو استفاده کنید ، اگه می خواید یک رکورد ثبت شده رو ویرایش کنید ، از Edit استفاده کنید و اگر می خواید یک رکورد جدید ثبت کنید فقط از Insert استفاده کنید .

موفق باشید ...

SYNDROME
پنج شنبه 04 مهر 1387, 06:42 صبح
کلمه Criteria را در سایت جستجو کنید.
موفق باشید

ali_mohamadi8928
پنج شنبه 04 مهر 1387, 13:02 عصر
دوستان من خيلي جستجو كردم و مطالب زيادي در مورد اين خطا پيدا كردم ....

به توصيه هاي اقاي كرامتي و كشاورز و بقيه ي دوستان هم در مورد اين خطا عمل كردم .

ولي هيچ سودي به حالم نداشت .

من برنامم رو كه حجم خيلي كمي هم داره گذاشتم تا خودتون ببينيد . يك فيلم هم همراش هست كه در هنگام كار با نرم افزار ازش فيلم گرفتم و چگونگي ايجاد شدن خطا رو نشون ميده . ( فيلمش فلش هست )

لطفا من رو ياري كنيد .. خيلي عجيبه . كارم به همين گير كرده :ناراحت:

راستي يك نكته هم هست كه ذكرش خالي از لطف نيست .. وقتي همه ي فيلدها به جز



name
family
sef_name
sef_family
id


رو حذف ميكنم برنامه درست ميشه ولي وقتي بقيه ي فيلدها هم هست برنامه مشكل پيدا ميكنه و اون پيغام رو ميده :افسرده:

ali_mohamadi8928
پنج شنبه 04 مهر 1387, 13:25 عصر
بچه ها يه چيز جديد فهميدم .

وقتي فيلدها رو در بانك به صورت Yes/No انتخاب ميكنم اين مشكل ايجاد ميشه .

وقتي فيلدهاي Yes/No رو حذف ميكنم از بانك اين مشكل برطرف ميشه :لبخندساده:

چرا اينجوري هست ؟ يعني نبايد از عبارات منطقي (TRUE / FALSE) در كار با بانك اطلاعتي استفاده كرد ؟ راه حلي نداره يعني ؟

SYNDROME
پنج شنبه 04 مهر 1387, 17:32 عصر
آیا هنوز هم پیغام بالا را می دهد؟
آیا جدول شما دارای کلید است؟
موفق باشید

ali_mohamadi8928
پنج شنبه 04 مهر 1387, 23:15 عصر
اره كه ميده . اگه اون فيلدهاي Yes/No رو از بانك حذف كنم درست ميشه ولي نميتونم پاكشون كنم چون بهشون نياز دارم .

خب يعني براي اين مشكل هيچ راهي نيست ؟ پس دوستان و صاحب نظران كجا هستن ؟

من كه حتي پرژه رو با فيلمش هم گذاشتم

مهران موسوی
پنج شنبه 04 مهر 1387, 23:42 عصر
خب يعني براي اين مشكل هيچ راهي نيست ؟ پس دوستان و صاحب نظران كجا هستن ؟

من كه حتي پرژه رو با فيلمش هم گذاشتم

دوست عزيز فيلد id رو به عنوان Primary Key قرار بده تا مشكلي كه داري حل بشه ..... ربطي هم به نوع داده هاي استفاده شده نداره .... همين كاري كه گفتم انجام بده تا مشكلت برطرف بشه ....


يا حق ....