PDA

View Full Version : ارسال اطلاعات ارسال نشده از یک Table به Table مشابه (SQL)



HamidSh
جمعه 11 آبان 1386, 04:12 صبح
با سلام
من یک برنامه به Delphi و SQL 2000 نوشتم و این برنامه و دیتا بیس در جاهای مختلف نصب میشه.
حالا میخوام یه دکمه به برنامه اضافه کنم به اسم "ارسال اطلاعات" که بیاد اطلاعاتی که هنوز ارسال نشده را به یک سرور مرکزی ارسال کنم.
چون کلاینتها همیشه به سرور متصل نیستند و فقط در زمان ارسال وصل میشند نمی دونم از Replication میشه استفاده کرد یا نه.
بعد تو Replication نوشته شده بود که بر اساس زمانبندی مشخص اطلاعات ارسال میشه که من یه چنین چیزی نمی خوام...
ممنون از کمکتون

vcldeveloper
جمعه 11 آبان 1386, 04:52 صبح
عبارت ltBatchOptimistic را در بخش دلفی جستجو کنید.

HamidSh
یک شنبه 13 آبان 1386, 00:24 صبح
اگه منظور شما اینه که بیام خصوصیت LockType را بر روی ltBatchOptimistic تنظیم کنم و هر بار که خواستم اطلاعات رو بفرستم متد UpdateBatch را صدا بزنم.
من چون این روش رو نمی دونستم این کار رو به یه شکل دیگه انجام دادم. اول اطلاعات را از جدول محلی میخونم و یه دستور INSERT با توجه به اطلاعات میسازم (مثلا 100 رکورد 100 رکورد) بعد با اجرای این دستور INSERT اطلاعات وارد جدول مقصد میشه. البته نمی دونم کدوم روش بهتره؟!؟!
بعد از این کارا میاد تو جدول محلی فیلد "ارسال" را True میکنه یعنی اطلاعات ارسال شده.
حالا مشکل اینجاست که اگه وسط کار ارتباط قطع بشه یا هر اتفاق ناگوار دیگه ای بیافته، باید چیکار کرد؟ الان وقتی برنامه را اجرا میکنم وسطش قطش میکنم. یه سری اطلاعات ارسال شده ولی فیلد ارسال True نشده. چه روشی پیشنهاد میکنید؟
تشکر

vcldeveloper
یک شنبه 13 آبان 1386, 01:44 صبح
از همون روشی که گفتم (UpdateBatch) استفاده کنید.

SYNDROME
یک شنبه 13 آبان 1386, 08:42 صبح
من چون این روش رو نمی دونستم این کار رو به یه شکل دیگه انجام دادم. اول اطلاعات را از جدول محلی میخونم و یه دستور INSERT با توجه به اطلاعات میسازم (مثلا 100 رکورد 100 رکورد) بعد با اجرای این دستور INSERT اطلاعات وارد جدول مقصد میشه. البته نمی دونم کدوم روش بهتره؟!؟!
بعد از این کارا میاد تو جدول محلی فیلد "ارسال" را True میکنه یعنی اطلاعات ارسال شده.

این روشی زمانی کار آمد است که شما بخواهید یک فایل بسازید و به Server خود بفر ستید و در آنجا فایل واکشی شده و در Server قرار گیرد.
من خودم زمانی از این روش استفاده می کردم که ارتباط با سرور بر قرار نبود و هر روز اطلاعات مثلا ساعت 12 با اتصال اطلاعات با سرور یکی می شود و دوباره ارتباط قطع می شد.
موفق باشید

daffy_duck376
شنبه 19 آبان 1386, 12:23 عصر
این یه حالت تو سروها ست به نام REPLICATION (ارتباط سرورها به هم) تو اینترنت یه سرچ بزن