PDA

View Full Version : سوال: روش های قطع لینک های دیتابیس



Milad_ATM
یک شنبه 29 آبان 1401, 10:43 صبح
با سلام خدمت اساتید
من از یک اینترفیس که به دیتابیس اصلی نرم افزارم در شبکه لینک شده استفاده میکنم
گاهاً ممکنه بخوام روی Table هایی که In Use هست تغییرات ساختاری مثل اضافه کردن یک فیلد رو انجام بدم.
چه راهی برای قطع ارتباط همه کابر ها با دیتابیس اصلی پیشنهاد میکند؟

eb_1345
یک شنبه 29 آبان 1401, 13:37 عصر
با سلام خدمت اساتید
من از یک اینترفیس که به دیتابیس اصلی نرم افزارم در شبکه لینک شده استفاده میکنم
گاهاً ممکنه بخوام روی Table هایی که In Use هست تغییرات ساختاری مثل اضافه کردن یک فیلد رو انجام بدم.
چه راهی برای قطع ارتباط همه کابر ها با دیتابیس اصلی پیشنهاد میکند؟
سلام
شما باید یک جدول اشتراکی ایجاد کنید و اون رو در داخل دیتابیس یا همون Back End در شبکه قرار بدی . این جدول در Front End یا اینترفیس برنامه کاربران باید به فرمی وصل باشه که در طول اجرای برنامه باز هستش. این جدول میتونه همون جدول کاربران باشه یا یک جدول مستقل دیگه . بنظر من از همون جدول کاربران استفاده بشه بهتره ؛ چون در مواردی که نیاز هست ادمین میتونه برای هر کاربری که خواست پیام خروج از برنامه یا هر پیام دیگه ای بفرسته یا اینکه همون پیام یکدفعه برای همه کاربران بفرسته . در این جدول میتونی در کنار سایر فیلد ها یک فیلد بصورت چک باکس و یک فیلد هم بصورت تکست برای پیام ارسالی از طرف ادمین ایجاد کنید .
و اون فرمی که عرض کردم در طول اجرای برنامه باید باز باشه میتونه فرم لوگین برنامه باشه که بصورت مخفی باز است. در این فرم یک تایمر قرار میدی و در رویداد این تایمر هر چند ثانیه فیلد چک باکس جدول کاربران چک میشه که اگه این فیلد جدول در حالا true قرار گرفت یک فرم پیام باز بشه که پیام ارسالی از طرف ادمین در اون به نمایش در بیاد و در رویداد تایمر این فرم بعد از سپری شدن یک زمان خاص برنامه بسته بشه
در حالتیکه ادمین فقط بخواد یک پیام غیر از خارج شدن از برنامه رو برای کاربران بفرسته فیلد چک باکس جدول رو در حالت false قرار میده و فقط فیلد پیام رو پر می کنه در این حالت در برنامه کاربران فرم پیام نمایش داده میشه ولی برنامه بسته نمیشه.
در اینترفیس برنامه هم باید یک فرم خاصی بمنظور ارسال پیام برای کاربران (البته کاربران آنلاین ) طراحی کنی . بدیهیست این فرم با توجه به سطح دسترسی کاربران قابل نمایشه
ضمناً باید عرض کنم که بنده خودم این روش رو تست نکرده ام ولی فکر می کنم اگه مطابق توضیحاتی که دادم عمل کنی به خواستت برسی .
یا علی

Milad_ATM
یک شنبه 29 آبان 1401, 14:17 عصر
ممنون از راهنماییتون
راهی بنظرت میرسه بدون اینکه یک فرم خاص همین کار تعریف کنم در هر فرمی که توی نرم افزار دارم بمحض اینکه همون تیک و پیامی ک شما گفتی بصورت msg نشون داده بشه و نرم افزار بسته بشه؟

eb_1345
یک شنبه 29 آبان 1401, 17:42 عصر
ممنون از راهنماییتون
راهی بنظرت میرسه بدون اینکه یک فرم خاص همین کار تعریف کنم در هر فرمی که توی نرم افزار دارم بمحض اینکه همون تیک و پیامی ک شما گفتی بصورت msg نشون داده بشه و نرم افزار بسته بشه؟
بالاخره باید این ارسال پیام در رویداد تایمر فرمی از فرم های باز کاربران چک بشه .

eb_1345
یک شنبه 29 آبان 1401, 18:17 عصر
شاید بگی چون تعداد کاربران زیادن این امکان برام وجود نداره که این تغییرات در هر کدام از برنامه های که جداگونه در اختیار اونها هست ایجاد کنم چنانچه چنین مشکلی احساس می کنی باید عرض کنم راه حلش بسیار راحته. شما در همون نسخه کامپایل نشده ای که در اختیار خودته تغییرات مورد نظرت رو پیاده کن بعد اون نسخه رو کامپایل( تبدیل کردن به MDE یا accde) کن و اون رو در کنار پایگاه داده در شبکه قرار بده و از کاربران بخواه اون نسخه رو جایگزین نسخه ای که در اختیارشونه بکنن .

حتی در فرم اولیه برنامه میتونی کدی بنویسی که در دفعات بعد اگه زمانی نسخه اصلاح شده و جدیدتر برنامه در کنار پایگاه داده قرار گرفت خودبخود نسخه جدید جایگزین نسخه فبلی کاربران بشه

eb_1345
یک شنبه 29 آبان 1401, 18:29 عصر
بالاخره وقتی شما جدول یا جداولی از پایگاه داده رو از نظر ساختاری تغییر میدین این تغییر ساختار اثر خودشو در کدهای برنامه که به نحوی در ارتباط با اون جدول و فیلدهای مربوطه هست میذاره . بنابراین وقتی در نظر داری جدولی از پایگاه رو طوری تغییر ساختار بدین که درست اجرا شدن کدهای برنامه مختل میشه باید اقدام به تغییر و اصلاح کدهای برنامه ای که در اختیار کاربران هست هم بکنی

atf1379
دوشنبه 30 آبان 1401, 11:33 صبح
-------------------------------------------------------------

Milad_ATM
سه شنبه 01 آذر 1401, 12:11 عصر
ببینید من در زمان لاگین با استفاده از TABLE Update چک میکنم اگر نسخه تغییر کرده باشه ، نسخه جدید بصورت خودکار روی دسکتاپ کاربر کپی بشه و پیغام عدم امکان استفاده از نسخه جاری و کپی شدن نسخه جدید رو بهش نشون میده
تا اینجا برای یوزر هایی که قرار هست وارد بشن کنترل آخرین نسخه بودن نرم افزار انجام شده و در صورتی که نسخه باطل شده باشه و نسخه جدید آماده نباشه پیام منتظر بودن رو میبینن.
میمونه یوزر هایی که الان در حال استفاده از نرم افزار
نظر خودم این هست که یک مقدار رو توی یک table ست کنم که و روی On Current همه فرم هام اینو بنویسم که اگر تغییر کرد پیغام بستن نسخه جاری رو نشون بده و در صورت تایید بسته بشه و در غیر این صورت پس از یک زمان مشخص بصورت خودکار Quit بشه