PDA

View Full Version : سوال: عدم ذخیره تغییرات رکورد پس از خروج از حالت ویرایش در DBGridEH



hadisalahi2
پنج شنبه 02 دی 1389, 18:25 عصر
با سلام به همگی دوستان.
من یک جدول DBGridEH دارم که از طریق یک mtTable به یک ADOQuery وصل شده.
هنگامی که کاربر بر روی دکمه ویرایش کلیک میکنه ، جدول در حالت ویرایش قرار میگیره و کاربر میتونه اطلاعات رو تغییر بده و بعد هم دوباره با کلیک بر روی همون دکمه ویرایش جدول از حالت ویرایش خارج میشه و اطلاعات داخل جدول ذخیره میشه.
اما بعد از اینکه دوباره وارد همون فرم میشم اطلاعات ویرایش نشده و همون اطلاعات قبلی داخل رکورد نشون داده میشه.
من فکر میکنم اطلاعات به صورت موقت جایی ذخیره میشه و لازم تا در جدول اصلی بروز رسانی بشه ، اما نمی دونم چطوری.
در ضمن من از متد post هم برای mtTable ,ADOQuery استفاده میکنم ولی هیچ تغییری حاصل نمیشه.

ممنون میشم از راهنمایی دوستان

یا حق

vcldeveloper
پنج شنبه 02 دی 1389, 19:07 عصر
متد ApplyUpdates رو فراخوانی نکردید.

hadisalahi2
پنج شنبه 02 دی 1389, 19:28 عصر
متد ApplyUpdates رو فراخوانی نکردید.

چرا همین متد رو به صورت زیر فراخوانی کردم ولی بازهم فرقی نکرد.

mtTable1.ApplyUpdates(0);

hadisalahi2
شنبه 04 دی 1389, 10:07 صبح
دوستان روشی برای این کار پیشنهاد نمی کنند؟

vqh.nhkdhgd
یک شنبه 05 دی 1389, 11:46 صبح
دوست عزیز شما احتمالاً با دستورات SQL بخشی از جدول رو انتخاب کردید و باید برای رسا کردن رکورد ها ابتدا متد Requery رو فراخوانی کنی.

hadisalahi2
یک شنبه 05 دی 1389, 17:14 عصر
دوست عزیز شما احتمالاً با دستورات SQL بخشی از جدول رو انتخاب کردید و باید برای رسا کردن رکورد ها ابتدا متد Requery رو فراخوانی کنی.
با سلام
رسا کردن دیگه چیه؟
این متد رو باید روی کدوم کامپوننت اجرا کنم؟
یا حق

khoshblagh
دوشنبه 06 دی 1389, 07:20 صبح
با سلام خدمت دوستان
من به این روش اطلاعات درون دی بی گرید را ثبت میکنم.متشکرم

qyrBimehDarman.Next ;
qyrBimehDarman.Prior;

hadisalahi2
سه شنبه 07 دی 1389, 08:27 صبح
این روش مربوط به زمانیه که شما از کامپوننت گرید استاندارد دلفی استفاده میکنید ولی هنگامی که جدول رو با کامپوننت MTTable استفاده میکنید این روش جوابگو نیست چون اطلاعات به صورت موقت درون MTTableذخیره میشه.
دوستان برای این کار روشی رو پیشنهاد نمی کنند؟

khoshblagh
سه شنبه 07 دی 1389, 10:59 صبح
با سلام خدمت دوست عزيز
اتفاقا من از DBGridEhبراي اينکار استفاده مينمايم.

hadisalahi2
سه شنبه 07 دی 1389, 17:36 عصر
شما هنگامی که با MTTable کار میکنید هم این روش کار میکنه؟

hadisalahi2
سه شنبه 07 دی 1389, 17:44 عصر
در ضمن این دو تا متد رو روی کدوم کنترل اجرا میکنید؟ کوئری یا گرید؟

khoshblagh
پنج شنبه 09 دی 1389, 10:23 صبح
شما هنگامی که با MTTable کار میکنید هم این روش کار میکنه؟

من کامپوننت فوق را ندارم .
روش کار اين است که در گريد مورد نظر کاربر مقاديري را در يک ستون گريد وارد ميکند . ولي معمولا تمام رکوردها به جز رکورد آخر در بانک ثبت ميشود. لذا کاربر بعد انجام تمام تغييرات در سطح فرم کليدي که نمايانگر ثبت اطلاعات ميباشد و کدهاي فوق الذکر در آن نوشته شده است را يکبار کليک ميکند.

hadisalahi2
پنج شنبه 09 دی 1389, 19:24 عصر
با سلام
روش پیشنهادی شما هنگام کار با کامپوننتی که بهت گفتم عملی نیست چون این کامپوننت به صورت موقت اطلاعات رو نگهداری میکنه و انجام ویرایش نیز بر روی همین رکوردهای موقت صورت میگیره و پس از بسته شدن اون اطلاعات ویرایش شده در بانک ذخیره نمیشه.
ولی بدون این کامپوننت کار خیلی ساده است و احتیاج به کار خاصی نداره.

bootshow
سه شنبه 05 بهمن 1389, 04:29 صبح
فکر کنم شما از TMemTableEh استفاده میکنید.این کامپوننت محتوای جداول را در رم قرار میدهد و داده ها در رم ویرایش و ذخیره میشوند.