View Full Version : row cannot be located for updating. some values may have been changed since it was last read
rouzbeh_ziafati
چهارشنبه 25 آذر 1388, 21:26 عصر
این کد رو ببینید به خط قرمز (Adodc8.Recordset.Delete) که میرسه بعضی موقع ها این خطا رو میده
row cannot be located for updating. some values may have been changed since it was last read
با سلام
لطفا به دادم برسید که اصلا نمیدونم این ارور از چیه ؟!!؟!
این کد رو ببینید به خط قرمز (Adodc8.Recordset.Delete) که میرسه بعضی موقع ها این خطا رو میده
row cannot be located for updating. some values may have been changed since it was last read
Private Sub Timer1_Timer()
Adodc8.RecordSource = "select * from primery where status = '" + "1" + "' "
Adodc8.Refresh
Do While Adodc8.Recordset.EOF <> True
Adodc8.Recordset.Delete
Adodc8.Recordset.MoveNext
Loop
End Sub
mpmsoft
چهارشنبه 25 آذر 1388, 22:41 عصر
ظاهرا این رکورد از جای دیگه بروز شده و CRC رکورد عوض شده
باید قبل از جستجو رکورد و خذف اون یک Rs.Requery بزنید و یا CursorLocation کانکشن رو بروی Server بذارید که با این کار سرعت ارتباط با بانک بسیار پایین میاد(SQL Server)
rouzbeh_ziafati
چهارشنبه 25 آذر 1388, 23:38 عصر
ظاهرا این رکورد از جای دیگه بروز شده و CRC رکورد عوض شده
باید قبل از جستجو رکورد و خذف اون یک Rs.Requery بزنید و یا CursorLocation کانکشن رو بروی Server بذارید که با این کار سرعت ارتباط با بانک بسیار پایین میاد(SQL Server)
من از بانک اکسس استفاده کردم
من تا حدودی فهمیدم مشکل بخاطر چیه اما نمی دونم چطور رفعش کنم ؟
یه جدول دارم به اسم primery توی جدول رو نگاه کردم دو تا رکورد بود
اما توی برنامه توی دیتا گرید 3 تا رکورد رو نشون می ده و وقتی هم میخواد پاک کنه رکوردها رو اون پیام رو میده !!!!
نمی دونم چرا محتوای دیتاگرید یا همون adodc8 که به primery مربوط شده رو با اطلاعات جدید جدول بروز نمیکنه !!!!
مشکل من فقط سر این هست که هر از گاهی این مشکل بوجود میاد و هر از گاهی خطا میده
لازم به ذکر هم هست که اول من برنامه رو با شئی data نوشته بودم و اصلا با این خطا مواجه نمیشدم. اما چون مجبور شدم برای بانک پسوورد بگذارم مجبور شدم از شئی adodc بجای data استفاده کنم . و وقتی این کار رو کردم هر از گاهی با این خطا مواجه میشم .
بعضی از ارور ها رو با دستور
adodc.recordset.close
adodc.recordset.open
از بین بردم . اما این دو دستور پشت سر نیز باز نتونست جلوی همه خطاهارو بگیره !!!
xxxxx_xxxxx
جمعه 27 آذر 1388, 08:35 صبح
نمی دونم چرا محتوای دیتاگرید یا همون adodc8 که به primery مربوط شده رو با اطلاعات جدید جدول بروز نمیکنه !!!!
مشکل من فقط سر این هست که هر از گاهی این مشکل بوجود میاد و هر از گاهی خطا میده
سلام،
بعد از هر بار Delete کردن رکوردی باید Adodc رو Refresh کنید:
Adodc8.Refresh
البته این کارو تو حلقه انجام ندید، فقط زمانی که رکورد ها رو به صورت تکی حذف می کنید. این کار باعث میشه که DataGrid تون هم بروز بشه چون متصل به Adodc هست.
موفق باشید/
rouzbeh_ziafati
شنبه 28 آذر 1388, 01:07 صبح
برنامه رو آپلود کردم لطفا یه نگاهی بهش بیاندازید .
من قبلا از شئی data استفاده میکردم با این خطاها مواجه نمیشدم .از وقتی که مجبور شدم از شئی adodc استفاده کنم این بلاها سرم اومده !!!!!
برنامه تک کاربره هست و بانکش هم اکسس
سر هر شب تست میشه که آیا ماشین هایی که توی صف هستند از مدت انتظارشون دو روز بیشتر نگذشته باشه . اگر گذشته باشه برنامه اونها رو پاک میکنه از صف انتظار و ماشین هایی که توی صف میمونند رو به ترتیب دوباره نوبت دهی میکنه .
من با دوتا خطا در این برنامه مواجه هستم البته نه همیشه
یکی
row cannot be located for updating. some values may have been changed since it was last read
و دیگری
the microsoft jet database engine stopped the process because you and another user are ...
برای تست برنامه در حالی که برنامه در حال اجرا هست میتونید تاریخ سیستم رو جلو ببرید .
https://www.opendrive.com/files?5900547_yKrN6
یا
https://www.opendrive.com/files/5900547_yKrN6/Payane%20Ver5.rar
xxxxx_xxxxx
شنبه 28 آذر 1388, 12:58 عصر
سلام،
روال Timer1_Timer رو میگید دیگه؟
برای من که خطایی نمیده!
the microsoft jet database engine stopped the process because you and another user are ...
این خطا زمانی تولید میشه که شما فایل Access تون رو باز کرده باشید و در حالت Design باشید. پس در حین تست برنامه از برنامه Access خارج بشید یا حداقل در حالت Design نباشید.
این خطا هم که اصلاً برای من رخ نداد:
row cannot be located for updating. some values may have been changed since it was last read
میتونید بگید در چه مواقعی این اتفاق میوفته؟
rouzbeh_ziafati
شنبه 28 آذر 1388, 18:14 عصر
والا خطای اول که گفتید توی design نباشم . من اصلا توی design نیستم ! که این خطا رو میده
شما اصلا بانک رو باز نکن جدا . برنامه رو اجرا کن بعد تاریخ سیستم رو از توی Taskbar جلو ببر 3 روز ببین چی میشه
خطای دوم هم نمیدونم چه مواقعی میده .
من برنامه رو میدم مشتری کار میکنه بعد از دو سه ما میاره و میگه این خطا رو میده !
ضمنا شما بانک برنامه رو که من آپلود کردم جدا داشته باش هر موقع که برنامه رو اجرا میکنی ممکن هست که رکوردهایی ازش پاک بشه و دیگه با خطا مواجه نشی . هر موقع خواستی بانک رو دوباره از روی بانک اصلی که من دادم یکی جایگزین کن تا همون رکودهای قبلی دوباره برگرده
vcldeveloper
شنبه 28 آذر 1388, 21:31 عصر
قبل از ایجاد تاپیک یک جستجو انجام می دادید؛ بارها درباره این خطا و علل پیدایش آن در همین سایت در تالارهای مختلف توضیح داده شده:
http://www.google.com/cse?cx=010277259273172057471%3Agbud9yj2nhi&q=row+cannot+be+located+for+updating&x=76&y=17&siteurl=www.barnamenevis.org%2Fforum%2Fshowthread. php%3Ft%3D195420
دلایل عمده بطور خلاصه:
1- جدول مربوطه Primary Key نداره.
2- در هنگام ایجاد دستورات SQL برای حذف و ویرایش توسط ADO، بجای اینکه رکورد بر اساس Primary Key جستجو بشه، بر اساس کل فیلدهای رکورد جستجو میشه؛ یعنی اگر یکی از فیلدهای رکورد در زمان ثبت ویرایش یا حذف تغییر کرده باشند، رکورد مورد نظر توسط ADO پیدا نمیشه.
توضیحات مفصل تر و راه حل های مربوطه را در تاپیک های لینک فوق پیدا کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.