View Full Version : سوال: عدم refresh بانک
goldkavir
شنبه 05 اردیبهشت 1388, 13:26 عصر
من یه برنامه با دلفی 7 و sql 2005 نوشتم که کلیه اتصالاتش درسته ولی اگه همزمان 2 تا کاربر کار کنن تغییرات اعمال نمیشه و این طور به نظر میرسه که از بانک یه کپی گرفته شده و کاربر باهاش کار می کنه و اگه در حین اجرای برنامه شما جدول رو هم refresh کنید بازم تغییرات اعمال نمیشه، هر کاری به ذهنم رسید کردم ولی درست نشد.
cursor type جدول ها هم روی ctDynamic تنظیمه ولی نمی دونم چرا عمل نمیکنه، اینم بگم که با ado به sql کانکت شدم، adoConnection تنظیم خاصی داره؟
shahrokhkian
شنبه 05 اردیبهشت 1388, 16:23 عصر
به جای refresh از کد زیر استفاده کن
DM.TableName.Resync([rmExact]);
این دستور کلیه تغییرات صورت گرفته بر روی بانک را بروز میکند.
در ضمن برای استفاده از این خط باید DB را در قسمت Uses اضافه کنی.
goldkavir
شنبه 05 اردیبهشت 1388, 17:05 عصر
ممنون از راهنماییتون ولی گفتم که ظاهرا از بانک کپی گرفته میشه adoconnection تنظیم خاصی نداره مثلا قسمتهای attributes, cursor location, isolationLevel, mode تنظیم خاصی نداره:متفکر:
goldkavir
شنبه 05 اردیبهشت 1388, 17:13 عصر
با این کد دستور هم مشکل حل نشد:ناراحت:
bmanfy
شنبه 05 اردیبهشت 1388, 18:08 عصر
ببین دوست عزیز .
فرض کن دو کاربر اطلاعات رو واکشی کردن .
حالاکاربر اولی اطلاعات رو تغییر میده .
حالا دومی میخواد تغییر برده . اما چون اطلاعات تغییر کرده نمیتونه تغییر بده و در واقع در بانک اعمال نمیشه برای اینکه بتونه تغییراتی بده باید جدول رو رفرش کنه و قبل از اینکه دیگری تغییری در اون بده بیاد و تغییراتش رو بده .
برای اعمال تغییرات از چه روشی و ابزارهایی استفاده میکنید ؟
vcldeveloper
شنبه 05 اردیبهشت 1388, 18:15 عصر
cursor type جدول ها هم روی ctDynamic تنظیمه ولی نمی دونم چرا عمل نمیکنه،
ctDynamic وقتی کار میکنه که CursorLocation روی Server Side باشه، و سرور هم این نوع کرسر را پشتیبانی کنه. وقتی هم معلوم میشه که سرور Dynamic Cursor را پشتیبانی میکنه یا نه که شما DataSet را باز کنید، و همچنان CursorLocation روی ctDynamic باشه. اگر Dynamic Cursor را پشتیبانی نکنه، خودش بطور خودکار کرسر را تغییر میده.
goldkavir
یک شنبه 06 اردیبهشت 1388, 14:08 عصر
ممنون از توضیحاتتون، وقتی CursorLocation رو روی clUseServer و CursorType روی clDynamic تنظیم میکنم برنامه موقع اجرا وقتی صفحه ی مورد نظر باز میشه این پیغامو میده:
dataset does not support bookmarks, wich are required for multi-record data controls
باید حتما تغیرات به روز بشه چیکارش کنم؟:ناراحت:
vcldeveloper
یک شنبه 06 اردیبهشت 1388, 23:38 عصر
dataset does not support bookmarks, wich are required for multi-record data controls
خب این یعنی نمی تونید به این شکل از این نوع کرسر با این بانک اطلاعاتی استفاده کنید. پیغام خطایی که دریافت کردید به خاطر این هست که دارید از Grid برای نمایش اطلاعات استفاده می کنید، و گرید برای نمایش اطلاعات نیاز به پشتیبانی از Bookmark توسط Dataset داره، ولی بانک اطلاعاتی شما همچین قابلیتی را برای کرسرهای دینامیک ارائه نمیکنه.
برای SQL Server 2005، یک گزینه برای آپدیت خودکار جداول این هست که از قابلیت Query Notification موجود در SQL Server 2005 استفاده کنید. ولی این قابلیت از طریق ADO در دسترس نیست، و برای استفاده از آن باید از کامپوننت SDAC محصول شرکت ِDevart استفاده کنید، که یک کامپوننت تجاری هست.
درباره این قابلیت، و این کامپوننت قبلا توضیح داده شده، و می تونید با جستجو در سایت، تاپیک های مربوطه را در همین تالار پیدا کنید.
a_mosavian
دوشنبه 14 اردیبهشت 1388, 23:29 عصر
بجای clDynamic از clKeyset استفاده کنید. تنها محدودیت clKeyset عدم امکان فیلتر و سورت هست مگر اینکه از ایندکس یا کوئری استفاده کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.