PDA

View Full Version : compaire چند دیتابیس access و استخراج scrip اختلاف ساختار



object
جمعه 01 تیر 1386, 10:47 صبح
کسی ابزار مناسب برای compaire دیتابیس های access میشناسه؟
فرض کنید یک برنامه اکسس نوشتید و مثلا 20 جا نصبش کردید
بعد این برنامه رو توسعه میدید و تغییراتی در دیتابیستون ایجاد میکنید
حالا چطور این تغییرات دیتابیس رو استخراج میکنید تا نسخه های نصب شده رو update کنید

object
شنبه 02 تیر 1386, 17:38 عصر
ای بابا یعنی اینجا هیچ کس تاحالا به همچین مشکلی برخورد نکرده
یعنی هیچ کس یک پروژه اکسس رو بیش از یک جا نصب نکرده و بعد توسعه اش نداده که بخواد همچین صورت مسئله ایی رو حل کنه؟؟؟!!!!!!

انگوران
یک شنبه 03 تیر 1386, 06:49 صبح
اگه این 20 جائی که که می فرمائید از طریق شبکه به هم ارتباط دارند که برنامه اصلی رو سیستم خودتون هست و در سیستمهای دیگه یه shortcut از برنامه اصلی می سازین و ...

object
دوشنبه 04 تیر 1386, 10:54 صبح
نه اصلا به هم مربوط نیستند اینها یه تعدادی موسسه کاملا مجزا از هم هستند
مثلا شما برنامه های کوچیکی که برای مثال برای تاکسی سرویس فروشگاههای کوچک و مجموعه های کوچک نوشته شدن رو در نظر بگیرید وقتی که یک ورژن جدید از اینها ایجاد میشه این برنامه ها توی این فروشگاهها و موسسه ها باید update بشن درسته؟
حالا این تغییرات دیتابیس رو من چه جوری توی این همه فروشگاه دونه دونه باید برم اعمال کنم؟

انگوران
دوشنبه 04 تیر 1386, 13:12 عصر
فکر میکنم تغییرات باید بصورت دستی روی تک تک دستگاهها انجام بشه یعنی برنامه ای که تغییر پیدا کرده رو با خودتون ببرین و تغییرات ایجاد شده جدید را با import وارد برنامه قبلی بکنین .
البته در کادر import و گزینه option گزینه هائی وجود داره که از اونا هم میشه استفاده کرد .

object
سه شنبه 05 تیر 1386, 12:45 عصر
ببخشید اما این اصلا معقول و منطقی به نظر نمیاد
حتما باید یه راهی وجود داشته باشه
پس این موسساتی که ادعا میکنند 9 هزارتا کاربر فعال دارند و برنامه اشون با access کارشده چه کار میکنند؟
اصلا منطقی نیست
با این شیوه من چطوری میتونم 1 برنامه را در 28 استان به روز کنم ؟؟؟؟؟!!!!!!!

object
چهارشنبه 06 تیر 1386, 14:54 عصر
داداشم عزیزم
مثل اینکه نتونستم منظورم رو درست بگم بهت
اصلا هر موسسه ایی جدا کار میکنه
هیچ ارتباطی هم با هم ندارند شما فرض کن n تا موسسه کاملا متفاوت که اصلا به هم ارتباطی ندارند

object
چهارشنبه 06 تیر 1386, 14:58 عصر
البته باید از شما دوست عزیز به خاطر توجه و عنایتتون تشکر کنم

MM_Mofidi
چهارشنبه 06 تیر 1386, 15:56 عصر
اینجا قبلا یک از دوستان برنامه ای برای ایجاد script(VB program) گذاشته بود که از روی یک فایل موجود کدها را خلق میکرد فکر کنم با کمی ابتکار بتونید اون رو با تغییر به نحوی که ابتدا چک کند شیئ مربوطه وجود دارد یا نه سپس اقدام به ایجاد آن کند بتونید استفاده کنید.

صبا9841
چهارشنبه 06 تیر 1386, 18:18 عصر
از ماکروی TransferDatabase


DoCmd.TransferDatabase acImport, "Microsoft Access", "D:\ACC\YEAR83", acTable, "D_SANAD", "D_SANAD", False

object
پنج شنبه 07 تیر 1386, 10:53 صبح
جناب مفیدی عزیز سلام
من هر چه جستجو کردم اون مطلبی رو که شما گفته بودید نیافتم ممنون میشم اگر بفرمائید کجاست
صبا جان فکر میکنم این ماکروی شما ممکنه به اطلاعات قبلی که جدول ما داشته آسیب بزنه چون تا اونجایی که من جستجو کردم و متوجه شدم این ماکرو ساختار قبلی رو حذف میکنه و ساختار جدید رو جایگزینش میکنه
ممنون میشم اگر در مورد این ماکرو یه توضیح کوچولو بدی

amrabady
جمعه 08 تیر 1386, 21:09 عصر
ببین دوست عزیز
شما باید در ابتدا تمام تلاش خود را بکار برید تا تیبل های برنامه های شما جامع باشد و نیاز به تغییر در نسخه های بعد نداشته باشد . بلکه نسخه های بعد معمولا در گرافیک یا انجام محاسبات متفاوت است. به زبان ساده تر، برنامه نویس همیشه در نسخه های بعدی در کوئری ها و فرمها و ریپورتها و ماکروها تغییر ایجاد می کند تا برنامه ای با بهره وری بالاتری ارائه نماید. در این صورت بروز نمودن برنامه جدید برای موسسات هیچ کاری ندارد فقط کافیست فایل جدید را برای آنها ارسال نمایید و خود آنها آن را نصب نمایند و با ایجاد یک فرم به نام (بروز رسانی) کار انتقال تیبل از برنامه قبل به برنامه جدید را انجام دهی
همه اینها در صورتی است که در نسخه جدید به تیبل ها دست نزده باشی
فرضا اگه مثلا تیبلی رو هم تغییر دادی باید تیبلی باشه که اطلاعات اون فرقی نکرده باشد مثلا اطلاعات پیش فرض کامبو باکسها است. در اینصورت هم به مشکلی بر نمی خوری

mazoolagh
شنبه 09 تیر 1386, 22:03 عصر
ببین دوست عزیز
شما باید در ابتدا تمام تلاش خود را بکار برید تا تیبل های برنامه های شما جامع باشد و نیاز به تغییر در نسخه های بعد نداشته باشد . بلکه نسخه های بعد معمولا در گرافیک یا انجام محاسبات متفاوت است. به زبان ساده تر، برنامه نویس همیشه در نسخه های بعدی در کوئری ها و فرمها و ریپورتها و ماکروها تغییر ایجاد می کند تا برنامه ای با بهره وری بالاتری ارائه نماید. در این صورت بروز نمودن برنامه جدید برای موسسات هیچ کاری ندارد فقط کافیست فایل جدید را برای آنها ارسال نمایید و خود آنها آن را نصب نمایند و با ایجاد یک فرم به نام (بروز رسانی) کار انتقال تیبل از برنامه قبل به برنامه جدید را انجام دهی
همه اینها در صورتی است که در نسخه جدید به تیبل ها دست نزده باشی
فرضا اگه مثلا تیبلی رو هم تغییر دادی باید تیبلی باشه که اطلاعات اون فرقی نکرده باشد مثلا اطلاعات پیش فرض کامبو باکسها است. در اینصورت هم به مشکلی بر نمی خوری

خوب اینها همه غیرعملی است - حداقل این که مشکلی رو برای این دوستمون حل نمیکنه!
کاملا" عادی هست که با گذشت زمان و بنا بر نیازهای جدید، لازم باشه که در ساختار جداول تغییراتی نظیر افزودن فیلدهای جدید یا تغییر نوع فیلدها یا اندازه اونها و حتی افزودن جدولها و کوئریها و روابط جدید، داده بشه.
بنابراین نمیشه آپدیت رو به گرافیک و عملیات محاسباتی محدود کرد یا لزوم تغییرات فراتر از این رو تماما" به عدم تسلط برنامه نویس منسوب کرد.

یک راه متداول این هست که یک نسخه دیتابیس خالی (فقط ساختار جداول و کوئریها و روابط) از ورژن جدید همراه با یک برنامه آپدیت برای مشتری ارسال میشه که برنامه آپدیت (میتونه access هم نباشه) اطلاعات جداول رو از دیتابیس قدیم میخونه و پس از تغییرات لازم در دیتابیس جدید اضافه میکنه. این روش غیرمخرب بودن فرآیند آپدیت رو هم گارانتی میکنه!
حالا اگر برای اینکار نیاز به خوندن ساختار دیتابیس قدیم هست (معمولا" در حالتی پیش میاد که ورژنهای متفاوتی در جاهای مختلف نصب شده) موضوع جداگانه ای هست و راحت میشه اون رو استخراج کرد.
اگر دوستمون همین مورد نظرشون هست بگن کجاش اشکال دارن تا بهتر بشه راهنماییشون کرد.

MM_Mofidi
یک شنبه 17 تیر 1386, 12:23 عصر
http://barnamenevis.org/forum/showpost.php?p=63774&postcount=1
http://barnamenevis.org/forum/showpost.php?p=43835&postcount=13
http://www.freevbcode.com/ShowCode.Asp?ID=3717
http://www.igenxsoft.com/
http://www.eggheadcafe.com/articles/microsoftaccess_source_code_generator.asp

object
جمعه 22 تیر 1386, 09:42 صبح
amrabady عزیز ممنون از راهنمائیت اما یکی از اصول برنامه نویسی تکرار و افزایشه یعنی شما به طور مداوم باید در حال افزایش امکانات به برنامه باشید دوستان دیگه کاملا مسئله رو به شکل خوبی پاسخ دادند
mazoolagh عزیز ببخشید که خیلی دیر جواب میدم (چون رفتم آش خوری دیر به دیر به اینترنت دسترسی دارم) موردی که شما اشاره کردید خیلی خوب و در خیلی از پروژه ها میتونه مناسب باشه اما یه مشکل داره مشکلش اینه که شما وقتی یک ورژن جدید تولید میکنید اون برنامه به روز رسان رو هم باید تغییر بدید
چون ممکنه یه جدول توی مثلا نسخه 1 یک ستون بهش اضافه شده توی نسخه 1.1 چند ستون دیگه بهش اضافه شده باشه و توی نسخه 1.2 یک کلید خارجی از یک جدول دیگه بهش اضافه شده باشه (که در اینجا باید اولویت ورود اطلاعات جداول حتما کنترل بشه) میبینید کار چقدر پیچیده میشه؟
امیدوارم تونسته باشم پیچیدگیش رو به طور واضح شرح بدم
ممنون میشم اگر راهنمایی کنید و جواب خودتون رو بفرمائید

object
جمعه 22 تیر 1386, 09:48 صبح
جناب مفیدی عزیز از زحمتی که کشیدید بی نهایت ممنونم
اون برنامه ایی که آقای زواره ایی قرار داده بودن برنامه مفیدی بود اما این صورت مسئله رو پاسخگو نیست
توی این صورت مسئله یه پیچیدگی هست که اونجا پاسخی براش وجود نداره البته میشه یه جورائی یه بلائی سرش اورد اما باز هم مشکل داره
اینجا نمیشه ساختار دوتا جدول رو با هم مقایسه و اختلافشون رو به صورت اسکریپ استخراج و روی دیگری برای همسان سازی اجرا کرد
باز هم تشکر میکنم دستت درد نکنه زحمت کشیدی عزیز

MM_Mofidi
شنبه 23 تیر 1386, 16:52 عصر
عزیز دل پست 9 را دوباره بخوان
http://barnamenevis.org/forum/showpost.php?p=359067&postcount=9
نگفتم مقایسه کن و ایجاد کن گفتم بررسی کن اگر نیست ایجاد کن.
در مورد بانکهای اطلاعاتی معمولا امکان اضافه شدن فیلد وجود دارد که با این روش فابل انجام است. در صورت تبدیل نوع فیلدها یا تغییر طول یا.... کلا edit یک فیلد،تیبل ،.. بجای insert آن چون معمولا باید کدی جهت تبدیل دادههای وارد شده قبلی هم نوشته شود تغییرات اضافه اعمال میشود.در اکثر مواقع بحث افزونگی است.
به هر حال با مقایسه Script ایجاد شده حاصل از بررسی و پیمایش دو بانک میتوان اختلاف ها را مشخص کرد.