PDA

View Full Version : نحوه restore کردن database در هنگام نصب برنامه



mostafa_leman
چهارشنبه 16 فروردین 1385, 08:18 صبح
با عرض سلام. یه مشکلی که من دارم اینه که واسه اولین بار که باید database رو restore کنم از چه روشی استفاده کنم
اینکه توسط برنامه restore کنیم به نظر من روش ساخته یافته ای نیست ولی اینکه توسط installshield بخواهیم restore کنیم من یه مشکل دارم .مشکلم اینه که اگه روی سیستم کاربر sql server نصب نباشه نمیشه database رو restore کرد
و اگه بخواهیم همراه نصب برنامه sql server هم نصب بشه اول database رو restore می کنه بعد sql server رو نصب میکنه . یعنی فایدهای نداره
من تا الان از روش اولی استفاده می کردم یعنی اولین باری که برنامه اجرا میشد database رو restore میکردم و یک مقدارو توی رجیستری تغییر میدادم . از اون به بعد اون مقدار رو چک میکردم
تورو خدا هر کس راه دیگه ای داره کمکم کنه
ممنون

mostafa_leman
چهارشنبه 16 فروردین 1385, 12:33 عصر
یکی نیست جواب مارو بده؟

taherbaghal
چهارشنبه 16 فروردین 1385, 12:36 عصر
اگر دیتابیست با اس کیو اله حتما باید سکیوال رو نصب کنی البته توی اینستالشیلد یه قسمت هست که کاربر رو از نصب اس کیو ال بی نیاز میکنه

mostafa_leman
چهارشنبه 16 فروردین 1385, 15:54 عصر
سلام
ممنون از جوابتون
من از بخش SQl Script دیتابیس رو restore میکنم
ولی نمیدونم شما منظورتون کدوم بخش install shield هست؟
اگه منظورتون همین Sql Script هست من چنین چیزی پیدا نکردم
قسمت Requirments حتما باید یکی از گزینه هاش فعال باشه . . .
بازم ممنون

Mehrafrooz
چهارشنبه 16 فروردین 1385, 16:55 عصر
آموزش Install Shield
http://www.barnamenevis.org/forum/showthread.php?t=40704

mostafa_leman
چهارشنبه 16 فروردین 1385, 17:47 عصر
سلام . با تشکر از راهنمایتون
من این فایل رو دیدم . اما چیزی که می خواستم رو توی این فایل نداشن
احتمالا منظورمو خوب بیان نکردم
ببینین من می خوام یک نصب بسازم که توی اون هم sql serverنصب بشه و هم database رو از طریق script نویسی بازیابی کنم
هنگامی که یک اسکریپت Sql Server اضافه میشه یک Connection هم ساخته میشه یعنی خود InstallShield هم برای اجرای اسکریپت از Sql Server نصب شده بر روی سیستم کاربر استفاده میکنه
اما هنگامی که Sql Server روی سیستم طرف نصب نیست و و خود برنامه هم بعد از گرفتن اطلاعات اولیه Sql Server رو نصب میکنه ما نمی تونیم اطلاعات Sql Server رو در فرم Login وارد کنیم
امیدوارم تونسته باشم منظورم رو برسونم

taherbaghal
چهارشنبه 16 فروردین 1385, 23:23 عصر
یعنی میخای همن که دیتابیست رو اتچ کرد اونو با یه فایل ریستور کنه؟

MMAASS
چهارشنبه 16 فروردین 1385, 23:28 عصر
اما هنگامی که Sql Server روی سیستم طرف نصب نیست و و خود برنامه هم بعد از گرفتن اطلاعات اولیه Sql Server رو نصب میکنه ما نمی تونیم اطلاعات Sql Server رو در فرم Login وارد کنیم

اولا می تونی بعد از نصب SQL یه دور سیستم رو Reset کنی تا اطلاعاتش رو بتونی تو فرم وارد کنی.
دوما منظورت از فرم Login چیه؟ یعنی فرم Login کجا؟ فرم Login ایی که تو برنامت نوشتی؟ یا جای دیگه؟ :متفکر:

mostafa_leman
چهارشنبه 16 فروردین 1385, 23:41 عصر
منظورم از فرم login فرم ورود اطلاعات کاربر توی install shield است
مشکل من اینه که توی install shield اول دیتابیس ور attach میکنه بعد Sql Server رو نصب میکنه
اگه میشد جای اینارو عوض کرد با چند تا دستور ساده بدون نیاز به restart کردن sql server رو run میکنم اما مشکل من اینجاست که اول Script های Sql اجرا میشه بعد نصب Sql Server

MMAASS
چهارشنبه 16 فروردین 1385, 23:59 عصر
منظورم از فرم login فرم ورود اطلاعات کاربر توی install shield است

این فرم چه چیزیو می گیره؟ و واسه چیه؟


مشکل من اینه که توی install shield اول دیتابیس ور attach میکنه بعد Sql Server رو نصب میکنه
وقتی که هنوز SQL نصب نیست دیتابیس رو کجا Attach میکنه؟ :گیج: حداقل بگین اسکریپت Attach کردن دیتابیسو اجرا می کنه.


اگه میشد جای اینارو عوض کرد با چند تا دستور ساده بدون نیاز به restart کردن sql server رو run میکنم اما مشکل من اینجاست که اول Script های Sql اجرا میشه بعد نصب Sql Server
تا اونجایی که من می دونم ترتیب اولویت کارهایی که اینستال شیلد در موقع نصب یه برنامه انجام می ده رو می شه عوض کرد. (یه قسمت واسه این کار داره)
اما ببخشین نمی دونم کجاست.:خجالت:

mostafa_leman
پنج شنبه 17 فروردین 1385, 00:04 صبح
این فرم نام سرور یا Instance Name رو از ما می گیره
و مشکل منم همینجاست ... چون Sql Server نصب نیست ما نمیتونیم نام سرور رو وارد کنیم بنابر این نصب تو همین قسمت گیر میکنه

MMAASS
پنج شنبه 17 فروردین 1385, 00:19 صبح
تا اونجایی که من می دونم Instance Name گرفتن یه نامه واسه به قول شما سروره.
یعنی اگه اینجا یه چیزی وارد کنین SQL رو با این نام نصب می کنه البته ممکنه یه سری چیز هم به اون اضافه کنه اما اینا ثابته و همیشه یه چیزه مثلا اگه Instance Name رو بدی Local اونو با MSSQLLocal نصب می کنه یا چیز دیگه ایی.

mostafa_leman
پنج شنبه 17 فروردین 1385, 00:28 صبح
آخه این اطلاعاتو واسه نصبsql server نمی خواد واسه اجرای Script می خواد

mostafa_leman
پنج شنبه 17 فروردین 1385, 10:24 صبح
منظور من این فرم install shield است

MMAASS
پنج شنبه 17 فروردین 1385, 11:08 صبح
آخه این اطلاعاتو واسه نصبsql server نمی خواد واسه اجرای Script می خواد
شما که اسکریپت رو دارین و می دونین چیه. و می گین Instance Name واسه اجرای اونه.
پس به عنوان یه پارامتر بهش ارسال می شه ببینین این رو کجا استفاده می کنه. :متفکر:

دوستان دیگه هیچ نظری ندارن؟

mostafa_leman
پنج شنبه 17 فروردین 1385, 13:51 عصر
این connection مثل برنامه هایی که ما با دات نت مینویسیم و برای اعمال دستوراتمون باید حتما یک connection داشته باشیم استفاده میشه
در حالت پیش فرض اگه در قسمت تنظیمات نام دیتابیسی را وارد نکنیم از Northwind و Master استفاده میکنه . مثلا اگه توی اسکریپتمون دستور ساخت جدول رو داشته باشیم میاد توی اون دیتابیس ( که ما هم میتونیم نام دیتابیس رو تعیین کنیم ) جدول رو میسازه
در ضمن ما میتونیم این اسکریپت ها رو روی چند نوع بانک اطلاعاتی (SQl 6,7,200,2005)و oracle و Mysql , . . . اعمال کنیم . اما من منظورم همون sql 2000 است
اگه میشد قبل از درخواست نام سرور sql server رو نصب کرد میشد بدون restart با وارد کردن دستور net start MSSQL اس کیو سرور رو run کرد

Parham.G
پنج شنبه 17 فروردین 1385, 14:27 عصر
در InstallShield برای اینکه SQL Server قبل از شروع اینستال نصب بشه، باید اون رو به عنوان یک Prerequisit اضافه کنید. این Prerequisit ها استفاده های خوبی داره. مثلا اگر قرارهست که کمپوننتی حتی توسط اینستال شیلد نصب بشه که قبلش نیاز به IE 6 ، جاوا و یا نت فریم ورک داره میتونید این Prerequisit ها رو از بخش Redistributeables انتخاب کنید تا قبل از شروع اولین مرحله نصب، ابتدا اینها نصب بشن. دقیقا یک Prerequisit برای MSDE داره.

ali_kolahdoozan
پنج شنبه 17 فروردین 1385, 14:31 عصر
ای بابا خوب desktopengine رو با Installshild نصب کن . بعد هم دیتابیست رو attach کن . بعد درون برنامه کار بر اگه عشقش کشید restore می کنه .

mostafa_leman
پنج شنبه 17 فروردین 1385, 15:14 عصر
سلام پرهام جان
ممنون از راهنماییت
یه سوال داشتم ؟ وقتی setup رو به صورت Install Script میسازیم چگونه میشه Object هارو به صورت Prerequiestics تعریف کرد؟

Parham.G
پنج شنبه 17 فروردین 1385, 15:56 عصر
این کار برای پروژه های نوع Install Script و یا Basic MSI تفاوتی نداره. در تب Installation Designer از دسته Application Data زیرشاخه Redistributables رو انتخاب کنید. حالا در سمت راست یک لیست شامل انواع مختلف Redistributable ها دارید که یا Install Shield Objects هستند، یا Merge Modules و یا Setup Prerequisite . عنوان یکیش هست Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) SP3a که مورد نظر شماست. کافیه اون رو انتخاب کنید و تیک بزنید. در Properties هر Prerequisite هم میتونید سوئیچهای لازم رو براش تعیین کنید. مثل نصب بدون نمایش دیالوگها (Silent Installation) و یا مواردی که برای همین MSDE نیاز هست. مثل Collation یا Instance Name و ...
اگر در ستون Loaction عبارت Needs to be downloaded نوشته شده یعنی اینکه هنوز اون Prerequisite رو روی سیستم خودتون ندارید و باید دانلودش کنید. و یا از پکهای ستاپ آبجکتهای مختلف InstallShield اون رو نصب کنید. این پکها رو از وبسایت InstallShield که البته الان جزئی از Macrovision شده میتونید دانلود کنید. ولی حجم هر کدام از پکهای کامل حدود ۳۰۰ الی ۴۰۰ مگابایت هست. ۳ تا پک هست که اگر نصب کنید تمام آبجکتها رو کامل دارید.

MMAASS
جمعه 18 فروردین 1385, 13:25 عصر
من اگه می دونستم کارت با Microsft SQL Server 2000 Desktop Engin(MSDE 200) حل می شه از همون اول می گفتم.
اما یادت باشه MSDE مثل SQL معمولی اینترفیس نداره. که اگه روی سیستمتون نصب کردین بتونین توش دیتابیس بسازین و دیتا بیس های دیگتون رو ویرایش کنین. توی All Programs هم هیچ آیتمی مبنی بر نصب این برنامه نمیاد فقط آیکن Service Manager که خود SQL هم داره در قسمت Notification میاد. البته یه جایی شنیدم که یکی گفت اینترفیس داره و از تو کامند داس اجرا می شه. اما در کل فقط برای کاربر نهایی خوبه که هیچ وقت نتونه به جداول و چیزای دیگه دسترسی داشته باشه.
من با اینستال شیلد MSDE رو نصب کردم هیچ احتیاجی هم به Instace Name و از این چیزا نداره و با یه اسم ثابت اونو نصب می کنه که الان متاسفانه یادم نیست. :خجالت:
یه چیز دیگه بعد از نصب MSDE حتما باید سیستم ریوت بشه تا سرویس اون استارت بشه مگر اینکه بتونین اونو با یه دستوری استارت کنین.

اما یه سوال ...
چرا شما می خواهین دیتا بیس رو ریستور کنین؟
شما می تونین یا با استفاده از اسکریپت اونو بسازین و یا اگه می خواهین از همون فایلها استفاده کنین می تونین با استفاده از استورپراسیجر "sp_attach_db" در بانک اطلاعاتی Master اونو Attach کنین.

mostafa_leman
یک شنبه 20 فروردین 1385, 11:35 صبح
سلام
آقا دستتون درد نکنه . فقط یه سوال دیگه
توی قسمت Properties واسه اینکه بعد از نصب sql server سیستم reboot بشه چه کدی را باید وارد کنم؟
فکر میکنم بیا توی تب application to run باید در قسمت specify the return code . . . if a reboot is required یک کد به دسیمال بدیم
اونجا چه عددی باید وارد کنیم؟
در مورد سوال MMAASS هم بگم یک دلیل اینکه گفتم restore کنم اینه که میخوام همراه بانک اطلاعاتی یک سری داده پیش فرض باشه
منم MSDE رو بیشتر قبول دارم اما اگه مجبور شم مجبورم SQl Sever رو نصب کنم
یه سوال دیگه توی نسخه BASIC MSI توی Install Shield چه جوری یشه تعریف کر که .net هم نصب بشه
من با Install Script میتونم اما توی حالت Basic Msi نمیتونم
بازم از همتون ممنون

MMAASS
یک شنبه 20 فروردین 1385, 21:00 عصر
در مورد سوال MMAASS هم بگم یک دلیل اینکه گفتم restore کنم اینه که میخوام همراه بانک اطلاعاتی یک سری داده پیش فرض باشه

با داده هم می شه دیتابیس رو ساخت. می تونین یه اسکریپت بنویسین که هم جداول رو بسازه و هم رکوردهاش رو درج کنه. و هم می تونین طبق روشی که گفتم بر اساس استورپراسیجر "sp_attach_db"موجود در بانک Master اونو Attach کنین.
البته برای نوشتن اسکریپت هم احتیاج به هیچ زحمتی نیست چون خود SQL می تونه اونو تولید کنه.

mostafa_leman
یک شنبه 20 فروردین 1385, 21:28 عصر
آقا خیلی ممنون
پس به نظر شما اولین بار که برنامه رو اجرا کردم اونو attach کنم آره ؟

MMAASS
یک شنبه 20 فروردین 1385, 21:49 عصر
البته شاید هم به وسیله اینستال شیلد بشه اما من بلد نیستم.
اما در هنگام اجرای برنامه برای اولین بار می تونین این کارو انجام بدین.

babak869
پنج شنبه 17 اسفند 1385, 13:25 عصر
برای استفاده از اینستالشیلد و نحوه نصب SQL Server با اینستالشیلد هم میتونید به آدرس زیر مراجعه نمایید

http://barnamenevis.org/forum/showthread.php?t=32728&highlight=Installshield+%C2%E3%E6%D2%D4

موفق باشید

nazila_f
یک شنبه 14 مرداد 1386, 17:14 عصر
من دقیقا همین مشکل را دارم که قبل از این که MSDE نصب بشه صفحه مربوط به اضافه کردن DataBase میاد و چون چیزی پیدا نمی کنه ایراد می گیره و از نصب خارج می شه . مقاله ی بالا را هم خواندم و تمام مراحل را جلو رفتم ولی در نهایت بازم مشکلم حل نشد ؟:متفکر:می شه راهنماییم کنید

leilav_1984
دوشنبه 15 مرداد 1386, 15:33 عصر
با Setup خود .net البته 2005 یا بالاتر به راحتی میشه
SQL Server رو به عنوان پیش نیاز برنامه در قسمت publish معرفی کنید و تو یه Installer Class فایل Database رو Restore یا Attach کنید
اگه توضیحاتم کامل نیست بگید

nazila_f
سه شنبه 16 مرداد 1386, 15:16 عصر
ممنون
میشه دقیقا بگین از کجا باید SQL را اضافه کنم

leilav_1984
چهارشنبه 17 مرداد 1386, 10:43 صبح
ممنون
میشه دقیقا بگین از کجا باید SQL را اضافه کنم

در Properties پروژه به Publish برو و در اونجا "پیش نیازها"ی نصب رو تنظیم کن

nazila_f
چهارشنبه 17 مرداد 1386, 14:00 عصر
ممنون.می شه در مورد Installer Class بیشتر توضیح بدین