# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > Setup و Deployment > سوال: نصب و استفاده از نرم افزار (Windows Application) برای مشتری،بدون نیاز به نصب SQL SERVER درکامپیوترش!

## hqsoroush

دوستان عزیز سلام.
همیشه درگیر این مسئله هستم :افسرده:  که چرا برای استفاده ی مشتری از نرم افزاری که ساخته ام،مشتری باید Sql Server را نیز روی سیستم خود داشته باشد.(البته خداروشکر که تاحالا نرم افزار هام رو فقط برای پروژه ساخته ام نه مشتری :لبخند:  وگرنه ... :افسرده: )
ولی باید راهی برای جلوگیری از این کار وجود داشته باشه :لبخند گشاده!: (از اونجایی که با منطق جور در نمیاد و نرم افزار هایی که دیدم، اینطور نیستند).
من میخوام کمکم کنید تا این راه رو یاد بگیرم. :قلب: 
ضمنا،من تازه کارم و سریع گیج میشم. :متعجب: پس موضوع رو به زبان ساده بیان کنید.
مرسی :بوس:

----------


## Esmail Solhkhah

دوست عزیز اگه برنامه ای بر اساس SQL SERVER نوشته شده باشه حداقل دوتا حالت داره:

یا برنامه تحت شبکه هست که در اینصورت SQL SERVER رو فقط رو کامپیوتر سرور نصب میکنن و تو کلاینتها نصب نیاز نیست

یا برنامه لوکاله که در اینصورت حتما باید SQL SERVER رو اون کامپیوتر نصب بشه




> نرم افزار هایی که دیدم، اینطور نیستند


احتمالا اون نرم افزار ها از SQL SERVER استفاده نکردن ، حتما قرار نیست ما از SQL SERVER استفاده کنیم ، پایگاه داده های متفاوتی از شرکتهای مختلف وجود داره از اوراکل گرفته تا Postgre sql , ...

تو برنامه نویسی اگه برنامه لوکاله میتونید از اکسس - VistaDB - SQL Lite  و ...  که دیتابیس های لوکال هستند استفاده کنید

هر چند میشه از پایگاه داده های لوکال بصورت تحت شبکه هم استفاده کرذ ولی کار درستی نیست

موفق باشید.

----------


## hqsoroush

دیتابیس من Sql Server تشریف دارند. :لبخند گشاده!: ولی از نظر من اگه اینطور باشه که چون دیتابیس لوکاله باید حتما Sql Server نصب بشه ضعف بزرگیه. :اشتباه: 
تصور کنید که طرف بخواد از دیتابیسش بک آپ بگیره و بعد ویندوزش رو عوض کنه؛ اونوقت مجبوره که Sql Server رو دوباره نصب کنه و احتمالا نیاز داره که دیتابیسش رو Attach کنه توی Sql Server.
و اگر این دو کار رو بلد نباشه یا باید زنگ بزنه به برنامه نویسه و یا بیاد توی سایت barnamenevis.org دنبالش بگرده. :چشمک: 
اگه میتونید از دوستانتون هم سراغ بگیرید.
بسیار بسیار ممنونم. :قلب:

----------


## Esmail Solhkhah

> ولی از نظر من اگه اینطور باشه که چون دیتابیس لوکاله باید حتما Sql Server نصب بشه ضعف بزرگیه


اصلا هم ضعف بزرگی نیست اگه شما میخاید از مزایای SQL SRVER تو یه برنامه لوکال استفاده کنید باید جورش رو هم بکشید والا برید سراغ یه دیتابیس لوکال مثل اکسس یا VistaDB




> تصور کنید که طرف بخواد از دیتابیسش بک آپ بگیره و بعد ویندوزش رو عوض کنه؛  اونوقت مجبوره که Sql Server رو دوباره نصب کنه و احتمالا نیاز داره که  دیتابیسش رو Attach کنه توی Sql Server.
> و اگر این دو کار رو بلد نباشه یا باید زنگ بزنه به برنامه نویسه و یا بیاد توی سایت barnamenevis.org دنبالش بگرده


خب اگه ویندوز عوض بشه آیا نیاز نیست برنامه شما هم دوباره نصب بشه ؟ خب دراینصورت همزمان میتونید SQL SERVER رو هم نصب کنید. نیازی نیست کاربر به برنامه نویس زنگ بزنه

این برمیگرده به برنامه نویس که یه نصب کاملا اتوماتیک و بدون دخالت کاربر بسازه

ضمنا نیاز نیست بعدش بیاد دیتابیس رو Attach کنه ، میتونید خودتون تو برنامه چک کنید اگه دیتابیس اتچ نبود اتچتش کنید.




> اگه میتونید از دوستانتون هم سراغ بگیرید.


اینجاشو دیگه متوجه نشدم اگه میشه واضح تر توضیح بدید 

موفق باشید.

----------


## mohsencom

دوست عزیز این سوال دیگه خیلی تکراری شده

شما وقتی برنامه ای میسازی که با sql کار میکنه موقع فروش باید در مفاد قرارداد نامه بیاری که نرم افزارت از چه تکنولوژی هایی استفاده میکنه و مشتری ملزم هست به نصب اونها...فرمایشات جناب Esmail Solhkhah هم کاملا صحیحه

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

----------


## hqsoroush

> البته در یک فایل setup میشه کلیه مراحل نصب رو خودکار انجام داد


یعنی با این Setup میشه هم  برنامه نوشته شده توسط خودمونو نصب کنیم و هم SQL SERVER رو؟ :متفکر: 
اگه جواب مثبته لطفا توضیح بدید که چطور باید این کار رو انجام بدم. :متفکر: 
مرسی

----------


## hqsoroush

دوست عزیزم جناب *Esmail Solhkhah
*منظورم از اینکه گفتم


> اگه میتونید از دوستانتون هم سراغ بگیرید.


 این بود که اگر میتونید به دوستانتون توی تالار بگید نظرشون رو در مورد این بحث ارائه کنن.امیدوارم که سوء تفاهم نشده باشه. :افسرده: اگه شده که من معذرت میخوام. :قلب: 




> ضمنا نیاز نیست بعدش بیاد دیتابیس رو Attach کنه ، میتونید خودتون تو برنامه چک کنید اگه دیتابیس اتچ نبود اتچتش کنید.


یعنی توی VB واسه اش اینطور تعریف کنم که اگه فایل دیتابیس توی Sql Server اتچ نشده بود، اتچش کنه؟
اگه این امکان از طریق زبان برنامه نویسی وجود داشته باشه که خیلی عالی میشه. :تشویق:

----------


## hqsoroush

> دوست عزیز این سوال دیگه خیلی تکراری شده


خُب عزیزم وقتی بلد نیستم باید سوال کنم دیگه. :لبخند گشاده!: 
البته قبلش یه گشت و گذاری به تالار داشتم ولی جوابمو درست و حسابی نگرفتم. :ناراحت:

----------


## pedramfj

سلام
یه سر به این لینک بزنید

----------


## Esmail Solhkhah

> یعنی با این Setup میشه هم  برنامه نوشته شده توسط خودمونو نصب کنیم و هم SQL SERVER رو


بله میشه اگه مستندات SQL SERVER رو مطالعه کنید روش نصب اتوماتیک رو توضیح داده.

اصول کارشم به این صورته که یه فایل تنظیمی داره که شما تمامی پارامترها رو تو اون فایل ست میکنید

بعد SQL SERVER از رو اون موقع نصب جواب سوالاشو میگیره و از کاربر سوال نمیکنه

میتونید این فایل رو ست کنید و با برنامه ستاپ سازتون SQL SERVER رو هم نصب کنید.




> یعنی توی VB واسه اش اینطور تعریف کنم که اگه فایل دیتابیس توی Sql Server اتچ نشده بود، اتچش کنه


روش اینکه شما تشخیص بدید دیتابیس اتچ هست یا نه 

و اینکه اونو اتچ کنید برمیگرده به دستورات TSQL یا استفاده از SMO 

با VB.NET میتونید از هردو روش استفاده کنید ولی تو VB6 فقط میتونید از TSQL استفاده کنید چون SMO اسملبی یا مجموعه اسمبلی های دات نت هست.


موفق باشید.

----------


## hqsoroush

دوستان عزیزم، خیلی ممنون. :قلب: 
امیدوارم که مشکلاتم با کمک خدا و بعدش شما حل بشه. :لبخند گشاده!:

----------


## ParsaNM

دوستان فقط به عنوان گزينه تکميلي اضافه کنم در مراحل نصب توسط setup ميتوني اون فايل تنظيمات رو بسازي و اين فايل فرمتش مثل فايل ini هستش و بعدا مي توني خيلي راحت تغيررش بدي و يکسري مثال هم تو cd هستش البته فقط در نسخه 2000 به صورت .bat خواستي اين کار رو بکني بگو من خيلي رو اين زمينه کار کردم ميتونم خوب راهنماييت بکنم ...!

----------


## f_pakzad

اگر نیازی به تحت شبکه بودن نرم افزارتون ندارید از دیتابیس هایی مانند sqllite استفاده کنید که نیاز به هیچ نرم افزاری برای نصب ندارند.فقط یک dll کم حجم را به پروژه add کنید کافیه. کوئری نوشتن در آن هم مانند  sql است. اگ embedded database را جستجو کنید به نتایج بهتری میرسید

----------


## sozanban

سلام....اصلا نیازی به نصب ترم افزار توسط شما نیست..
بعد از اتمام پروژه فقط کافیه برای اون ستاپ بسازی...اگه با خود ویچوال بسازی همه نرم افزارهای مورد نیازو داخل ستاپ برنامه میزاره..و شما فقط نصب میکنی..
روی سیستم مشتری sqlexpress نصب میشه..که البته نیازی به تنظیمات نداره و خود ستاپی که ساختی نصبش میکنه...فقط شما کافیه کانکشن استرینگتو تنظیم کنی....به همین سادگی  , به همین خوشمزگی!

----------


## Leyla2011

سلام 
من خودم به این مشکل برخوردم آخرش هم مجبور شدم برای ساخت دیتابیس و جدول وفیلد ها scriptنویسی کنم البته میدونم باinstallshield میشه اینکار رو انجام داد
 اما من نحوه کار را بلد نیستم خیلی خیلی خیلی هم برای یادگیریش تلاش کردم اما آخر هم موفق نبودم توی هیچ کلاسی هم این مبحث تدریس نمیشه
 هیچ کس هم ظاهرا یا بلد نیست یا نمیخوان کمک کنن!

اگه یه شیر پاک خورده بلده خواهشا به ما هم بگه من که سر این قضیه واقعا کم آوردم

----------


## ParsaNM

دوست عزيز نمي دونم از چه روشي استفاده براي کارت استفاده کردي ولي اون چيزي که من مي دونم اينه که در installshield مراحل نصب رو اضافه ميکني و با tools هاي ديگه ميبايست database رو attach کني البته تا اونجايي که من مي دونم خيلي از برنامه ها اين کار رو ميکنن در هنگام اجرا برنامه اصلي هم ميشه اين کار رو کرد مثلا ado connection خودش مي تونه اگر database attach نشده بود خودش اون رو نصب کنه در ضمن اينکه sql express به صورت portable هم مي تونه نصب بشه و از نسخه sql 2005 به بعد هستش البته اين قسمت آخر رو من از يه مقاله خوندم خيلي اطلاعات زيادي در باره اش ندارم ...

----------


## Esmail Solhkhah

> اگه یه شیر پاک خورده بلده خواهشا به ما هم بگه من که سر این قضیه واقعا کم آوردم


زیاد خودتونو درگیر این دس مسائل نکنید این وقت رو بذارید برا خود پروژه

برا اتوماتیک سازی نصب SQL-SERVER
1:فایل SQLEXPR.EXE (برا نسخه اکسپرس) رو اکسترکت کنید
2:داخل مسیر فایل اکسترکت شده یه فایلی هست بنام template.ini که اگه بازش کنید و بخوندیش میتونید برا SQL-SEVER یه نصب اتوماتیک درست کنید (بی دردسر)
ضمنا یه فایل راهمنا هم داره تو مسیر setup\help\1033

موفق باشید.

----------


## esibarnamenevis

زیاد سخت نگیرید
 فیلم آموزشی هست اگه نیاز داشتید در خدمتم عزیزم

----------


## esibarnamenevis

راستی اگه آموزش یا  برنامه  نیاز داشتید در هر زمینه ای به این آدرس بیا:    s1390.mihanblog.com

----------


## hakim22

پس پشتیبانی رو واسه چی گذاشتن، خدمات پس از فروش چیز بدی نیست که ، شما هم یک سودی میبرید.

----------

