ورود

نسخه کامل مشاهده نسخه کامل : دریافت آخرین رکورد جدول در برنامه تحت شبکه



mohammad-j
17-02-2009, 12:51
با سلام خدمت تمامی برنامه نویسای گل گلاب
من یک برنامه نوشتم به صورت تک کاربره (برنامه آموزش) ولی الان می خواهم فرم های ورودی اطلاعات که کدینگ هستند رو تحت شبکه کنم ، الان برنامه در شبکه جواب می دهد اما مشکلی که من دارم این هست که هر فرمی مثل فرم ثبت دانش آموز در ابتدا می رود اخرین رکورد جدول دانش آموز رو می خونه و به آخرین کد یکی اضافه می کند و اون کد می شه کد جدید . ولی در شبکه وقتی دو تا سیستم همزمان می خواهند دانش آموز تعریف کنند هر دو سیستم کد یکسان می دهد .
این کد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


حالا من چطوری می توانم این مشکل رو برطرف کنم ؟

ntlog
27-02-2009, 11:39
اگه درست متوجه شده باشم ، مشکل شما با ثبت رکورد جدید هست .
این مشکل خیلی عادی هست ، و راه چاره اون هم خیلی آسون . شما با روش زیر می تونید لحظه پرس و جو برای گرفتن آخرین شماره رکورد رو به ارسال فرم نزدیکتر کنید .

به طوریکه ، زمانیکه فرم شما پر شد و کلید ثبت اطلاعات را زدید در ابتدای اکشن این کلید شما یک بار Query را باز و بسته کنید و یه بار از دستور Select برای جدولتان به طور ساده استفاده کنید ،.

اکر موفق نشدید ایمیل بزنید من یه مثال براتون درست میکنم ، در زمن مشکلات رفرش تایم در SQL Server 2005 برطرف شده اند.

amin@ntper.com

F A R H A D
27-02-2009, 12:34
با سلام خدمت تمامی برنامه نویسای گل گلاب
من یک برنامه نوشتم به صورت تک کاربره (برنامه آموزش) ولی الان می خواهم فرم های ورودی اطلاعات که کدینگ هستند رو تحت شبکه کنم ، الان برنامه در شبکه جواب می دهد اما مشکلی که من دارم این هست که هر فرمی مثل فرم ثبت دانش آموز در ابتدا می رود اخرین رکورد جدول دانش آموز رو می خونه و به آخرین کد یکی اضافه می کند و اون کد می شه کد جدید . ولی در شبکه وقتی دو تا سیستم همزمان می خواهند دانش آموز تعریف کنند هر دو سیستم کد یکسان می دهد .
این کد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


حالا من چطوری می توانم این مشکل رو برطرف کنم ؟

سلام
به هیچ وجه این روش رو پیشنهاد نمیکنم. چون هیچ تضمینی نیست که در همون لحظه که شما شماره رکورد رو گرفتید، کاربر دیگه ای عملیات insert رو انجام نده. یک فیلد identity تعریف کنید و مقدار اون رو بعد از ثبت به عنوان کد دانش آموز نمایش بدید

picher_s
27-02-2009, 18:49
سلام. فرهاد جان درست می گن اون راه بهترینه.اما اگه اصرار داری راه خودت رو بری پس...
زمانی که برنامه شما یه عملیات تکراری برروی مجموعه داده ها (dataset) انجام میدهد یا یک عملیات جستجو در مجموعه داده انجام میدهید بهتر است از به روز رسانی اطلاعات در این مدت زمان جلوگیری کنید.جهت انجام اینکار متد DisableControls از عنصر مجموعه داده را به هنگام شروع عملیات تکراری فراخوانی و در پایان این عملیات ، متد EnableControls از همین عنصر را فراخوانی کنید.بهتر است این عمل را در یک بلاک try..Finally انجام دهید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبر گرفته از مثال1-12 از Learn Delphi Programing (Farsi).pdf
موفق و پیروز باشید.