PDA

View Full Version : سوال: تحویل برنامه به مشتری



alisotoodefar
یک شنبه 22 تیر 1393, 10:54 صبح
سلام دوستان
سوالم اینه که کلا وقتی یک برنامه با #C می نویسیم و یک دیتا بیس هم در sql server داریم . برای تولید setup و تحویل مشتری چه کار باید کرد دقیقا که روی هر کامپیوتر دیگری نصب بشه؟
مثلا آیا باید connectionstring رو در فایل app.config تغییر داد ؟ چگونه؟


و برای استفاده از دیتا بیس روی کامپیوتر مشتری باید دقیقا چه چیزی رو روی کامپیوتر او نصب کرد و دیتابیس رو attach کرد؟



خیلی ممنون - من خیلی عجله دارم لطفا زود جواب بدین

Pedram_Parsian
پنج شنبه 26 تیر 1393, 13:01 عصر
با سلام به دوستان

می دونم سوالم تکراری هست ولی من وقتی همین عبارت رو جستجو کردم چیزی پیدا نکردم ... :لبخند:
وقتی هم که به انجن StackOverFlow رفتم هم که بد تر منو گیج کردن :ناراحت: این هم لینک (http://stackoverflow.com/questions/24798564/do-i-have-to-install-sql-server-if-i-use-it-in-my-application)

من یه برنامه مدیریت کتابخانه نوشتم که از SQL Server 2012 استفاده می کنه ...
حالا وقتی می خوام اون رو به مشتری تحویل بدم آیا نیاز هست که نرم افزار SQL در سیستم مشتری نصب باشه با فقط Microsoft SQL Server Compact 4.0
کافیه ؟

sadegh.te
پنج شنبه 26 تیر 1393, 13:33 عصر
نه نیازی به نصب SQL نیست
البته اگه کانکشنتو درست تنطیم کرده باشی.

mz6488
پنج شنبه 26 تیر 1393, 17:58 عصر
سلام.شما باید نرم افزار sql localDB رو تو سیستم مشتری نضب کنید.

shahryari
پنج شنبه 26 تیر 1393, 17:59 عصر
Microsoft SQL Server Compact 4.0
اگه منظورتون بانک با پسوند فایل sdf هست وجود چهارتا دی ال ال در سیستم مقصد کفایت میکنه
sqlceme35.dll
sqlceqp35.dll
sqlcese35.dll
System.Data.SqlServerCe.dll

البته این 35 ها ممکنه نسبت به ورژن اسکیوال در سیستم شما فرق بکنه

Pedram_Parsian
پنج شنبه 26 تیر 1393, 18:14 عصر
ببخشید ولی Connection String من به این صورته :

String Con = "Database="Book";Data" + "Source=(Local);Integrated Security = SSPI"

داخل سیستم خودم (که اس کیو ال دارم) درست کار می کنه ولی بدون اس کیو ال درست کار می کنه ؟

shahryari
پنج شنبه 26 تیر 1393, 18:27 عصر
کانکشن استرینگ برای Microsoft SQL Server Compact به صورت زیر است:


Data Source=D:\\MyData.sdf;Persist Security Info=False;

و اینهم نمونه های دیگه
http://www.connectionstrings.com/sql-server-compact/

Pedram_Parsian
پنج شنبه 26 تیر 1393, 18:37 عصر
روش دیگه ای وجود نداره ؟ به جز Microsoft SQL Server Compact

چون می خوام اگه بشه دیتابیس رو به برنامه Attach کنم که قابل مشاهده نباشه ... :لبخند:

omid nasri
پنج شنبه 26 تیر 1393, 18:41 عصر
چرا از SQLIET استفاده نمی کنی. . .هیچ چیزی رو هم نیاز نداره می تونی تا یک میلیون رکود رو هم ذخیره کنه بدون کسر سرعت و امنیت بالا. .. همین مرورگرها و اندوید ها هم دارن ازش استفاده می کنند.

Pedram_Parsian
پنج شنبه 26 تیر 1393, 18:47 عصر
چرا از SQLIET استفاده نمی کنی. . .هیچ چیزی رو هم نیاز نداره می تونی تا یک میلیون رکود رو هم ذخیره کنه بدون کسر سرعت و امنیت بالا. .. همین مرورگرها و اندوید ها هم دارن ازش استفاده می کنند.

دوست عزیز چرا مسئله رو عوض می کنید ؟! :لبخند:

برای برنامه من SQL از همه بهتره دلیل هم نمی خواد بیارم چون معلومه :لبخندساده:

shahryari
پنج شنبه 26 تیر 1393, 19:42 عصر
دوست عزیز چرا مسئله رو عوض می کنید ؟! :لبخند:

برای برنامه من SQL از همه بهتره دلیل هم نمی خواد بیارم چون معلومه :لبخندساده:

دوست من شما هم خدا را میخواهید و هم خرما را و هم هسته خرما !!!!
اینجوری که نمیشه

mz6488
پنج شنبه 26 تیر 1393, 19:54 عصر
این رو توجه داشته باشید که چون دارید از sql 2012 استفاده میکنید فقط میتونید تو ویندوزهای ویستا به بالا استفاده کنید.پس همون بهتر برید سراغ 2005 به بالا.ویندوز xp از sql 2012 پشتیبانی نمیکنه

Pedram_Parsian
پنج شنبه 26 تیر 1393, 20:08 عصر
دوست من شما هم خدا را میخواهید و هم خرما را و هم هسته خرما !!!!
اینجوری که نمیشه

خدا بزرگه .... :چشمک:

حالا جدا از شوخی یعنی نمیشه دیتابیس رو به برنامه attach کرد ؟

mz6488
پنج شنبه 26 تیر 1393, 20:59 عصر
با توجه کانکشن استرینگی که دادین باید sql server 2012 رو تو سیستم مقصد نصب و بعد دیتابیس رو attach کنید.اگه از نسخه xpress که تو sql 2012 میشه localDB استفاده کنید کافیه که تو سیستم مقصد فقط sql localDB نصب کنید و احتیاجی به attach نیست.اگر هم برنامه تون تحت شبکه باشه ناچارا باید sql server 2012 نصب کنید و بعدش attach و یه سری تنطیمات مخصوص شبکه

Pedram_Parsian
پنج شنبه 26 تیر 1393, 22:07 عصر
با توجه کانکشن استرینگی که دادین باید sql server 2012 رو تو سیستم مقصد نصب و بعد دیتابیس رو attach کنید.اگه از نسخه xpress که تو sql 2012 میشه localDB استفاده کنید کافیه که تو سیستم مقصد فقط sql localDB نصب کنید و احتیاجی به attach نیست.اگر هم برنامه تون تحت شبکه باشه ناچارا باید sql server 2012 نصب کنید و بعدش attach و یه سری تنطیمات مخصوص شبکه

با این Connection String دوستمون آقای Shahryari گفت که میشه دیگه ؟

فقط یه سوال دیگه ....

من باید دیتابیس رو DeAttach کنم یا ازش Backup بگیرم ؟

mz6488
پنج شنبه 26 تیر 1393, 22:56 عصر
با این Connection String دوستمون آقای Shahryari گفت که میشه دیگه ؟

فقط یه سوال دیگه ....

من باید دیتابیس رو DeAttach کنم یا ازش Backup بگیرم ؟

کانکشن استرینگ اقای شهریاری مخصوص
Microsoft SQL Server Compact هستش.شما دارید رو خود sql server کار میکنید واسه همین ساختار دیتابیس فرق میکنه مگه اینکه یه جورایی تبدیلش کنی که اون رو نمیدونم

در رابطه با سوال دوم فکر نکنم مشکلی داشته باشه.تو سیستمم sql نصب نیست.خودت امتحانش کن خوب

Pedram_Parsian
پنج شنبه 26 تیر 1393, 23:26 عصر
کانکشن استرینگ اقای شهریاری مخصوص
Microsoft SQL Server Compact هستش.شما دارید رو خود sql server کار میکنید واسه همین ساختار دیتابیس فرق میکنه مگه اینکه یه جورایی تبدیلش کنی که اون رو نمیدونم

در رابطه با سوال دوم فکر نکنم مشکلی داشته باشه.تو سیستمم sql نصب نیست.خودت امتحانش کن خوب

خوب من اگه از خود اس کیو ال استفاده کنم ، باید SQL 2012 به صورت کامل رو کامپیوتر مشتری نصب بشه ؟
:متفکر:
یه کمی غیر منطقی نیست ؟ ( آخه اینجوری که نصف افراد نمی تونن از اون استفاده کنن ؛ چون یه سیستم عالی می خواد !)

mz6488
پنج شنبه 26 تیر 1393, 23:46 عصر
خوب من اگه از خود اس کیو ال استفاده کنم ، باید SQL 2012 به صورت کامل رو کامپیوتر مشتری نصب بشه ؟
:متفکر:
یه کمی غیر منطقی نیست ؟ ( آخه اینجوری که نصف افراد نمی تونن از اون استفاده کنن ؛ چون یه سیستم عالی می خواد !)
خوب من همون اول گفتم که.تاپیک ها رو بخونی متوجه بشی.اگه کانکشن استرینگت اینجوری باشه حتما حتما sql server رو کامل باید نصب کنی بعد دیتابیس رو اتچ کنی که این کار بیشتر تو نرم افزارهای تحت شبکه کاربرد داره.ولی اگه کانکشن استرینگت جور دیگه باشه که دقیق یادم نیست.می تونی یه دیتابیس تو پروژه ت add کنی تا خودش کانکشن استرینگ رو بهت بده یا که بری تو نت سرچ کنی اونوقت کافیه sql localDb رو نصب کنی.دیگه اتچ کردن هم نمی خواد.

Pedram_Parsian
جمعه 27 تیر 1393, 00:06 صبح
خوب من همون اول گفتم که.تاپیک ها رو بخونی متوجه بشی.اگه کانکشن استرینگت اینجوری باشه حتما حتما sql server رو کامل باید نصب کنی بعد دیتابیس رو اتچ کنی که این کار بیشتر تو نرم افزارهای تحت شبکه کاربرد داره.ولی اگه کانکشن استرینگت جور دیگه باشه که دقیق یادم نیست.می تونی یه دیتابیس تو پروژه ت add کنی تا خودش کانکشن استرینگ رو بهت بده یا که بری تو نت سرچ کنی اونوقت کافیه sql localDb رو نصب کنی.دیگه اتچ کردن هم نمی خواد.

خوب آخه من دیتابیسم رو کامل توی SQL درست کردم ... :ناراحت: در ضمن فکر نمی کنم بشه با دیتابیس های خود VS درستش کرد چون نسبتا پیچیده هست و همچنین قراره تعداد رکورد های زیادی توش قرار بگیره ....
اگه کانکشن استرینگ رو به همون روش آقای شهریاری درست کنم و دیتابیسم رو در کنار فایل برنامه قرار بدم نمیشه ؟

mz6488
جمعه 27 تیر 1393, 00:38 صبح
خوب آخه من دیتابیسم رو کامل توی SQL درست کردم ... :ناراحت: در ضمن فکر نمی کنم بشه با دیتابیس های خود VS درستش کرد چون نسبتا پیچیده هست و همچنین قراره تعداد رکورد های زیادی توش قرار بگیره ....
اگه کانکشن استرینگ رو به همون روش آقای شهریاری درست کنم و دیتابیسم رو در کنار فایل برنامه قرار بدم نمیشه ؟
شما که با sql server کار میکنید مشکلی نداره.میتونید به کارتون ادامه بدید ولی اگه بخواین طبق روشی که گفتم برید باید موقع انتشار نرم افزار دیتابیس رو تو پوشه debug قرار بدید و کانکشن استرینگ رو تغییر بدید.دیگه عملا کاری هم نمی خواد انجام بدین.خودم این روش رو بهتر میپسندم

هزاره سوم
جمعه 27 تیر 1393, 19:42 عصر
سلام
من برای پروژه ام نیاز به دیتابیس داشتم پس از sql server استفاده کردم و یه دیتابیس ایجاد کردم و بعد توی پروژه به اس کیو ال وصل شدم و به دیتابیس دانکت شدم
حالا میخوام این پروژه رو تحویل بدم و باید روی یک سیستم دیگه تست بشه ولی این دیتابیس رو دیگه نمیشناسه
میدونم سوالم خیلی مبتدی عه و مسلما توی انجمن جوابش هست ولی نمیدونستم دقیقا باید چی سرچ کنم
اگر لینکی هست یا کابران محترم توضیحی بدن ممنون میشم

felfely
جمعه 27 تیر 1393, 19:50 عصر
سلام.

من تا الان همچین کاری نکردم و دیتابیس هام رو کنار پروژه م میذاشتم.
حالا که شما از sql server استفاده کردید کافیه دیتابیستون رو detach کنین و رو sql server مقصد attach کنین.

در پناه حق
موفق و موید باشید.

erfan_urchin
جمعه 27 تیر 1393, 20:47 عصر
شما بهتره sql رو توی سیستم مشتری نصب کنید و از دیتابیستون Backup بگیرین و تو سیستم مشتری Restore کنید
پیشنهاد میکنم از detach و attach استفاده نکنید. چون احتمالش هست به مشکل بخورین

Slytherin
جمعه 27 تیر 1393, 21:52 عصر
من خودم از SQL Express
استفاده میکنم.
موقع ساخت ستآپ تیکش رو میزنم که این برنامه رو همراه با سـتاپ برنامه ام اتچ کنه و در نتیجه موقع نصب برنامه اونم خود به خود نصب میشه.
تنها مشکلش اینه که حدود 200 مگابایت حجم میگیره...

هزاره سوم
جمعه 27 تیر 1393, 22:19 عصر
سلام.

من تا الان همچین کاری نکردم و دیتابیس هام رو کنار پروژه م میذاشتم.
حالا که شما از sql server استفاده کردید کافیه دیتابیستون رو detach کنین و رو sql server مقصد attach کنین.

در پناه حق
موفق و موید باشید.


میشه بگید خودتون دقیقا چه کار میکنید؟
این مراحلی که بقیه کاربران گفتن رو اصلا متوجه نمیشم
چند مورد هم بود کاربران فرمودن باید sql رو روی سیستم مقصد نصب کنم! این که نمیشه..مثلا من میخوام یه برنامه بدم بیرون...برم واسه هم sql نصب کنم!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Pedram_Parsian
جمعه 27 تیر 1393, 22:19 عصر
شما بهتره sql رو توی سیستم مشتری نصب کنید و از دیتابیستون Backup بگیرین و تو سیستم مشتری Restore کنید
پیشنهاد میکنم از detach و attach استفاده نکنید. چون احتمالش هست به مشکل بخورین

خوب من می خوام کاربر نتونه به اطلاعات از طریق خود SQL دسترسی داشته باشه و در صورت نصب هم که .... :ناراحت:
در ضمن SQL خیلی نرم افزار سنگینی هست و یه خورده سرعت کامپیوتر رو کم می کنه (البته بیشتر از یه خورده !)

Pedram_Parsian
یک شنبه 29 تیر 1393, 15:27 عصر
دوستان راهنمایی می کنید ؟
بالاخره باید SQL در سیستم مقصد نصب باشه یا نه ؟؟ :گریه:

mz6488
یک شنبه 29 تیر 1393, 16:04 عصر
دوستان راهنمایی می کنید ؟
بالاخره باید SQL در سیستم مقصد نصب باشه یا نه ؟؟ :گریه:

آخه دوست عزیز.یه لحظه فکر کنم.دیتابیس رو با sql server درست کردی.کانکشن استرینگش هم local خوب این برنامه ت چجوری به local وصل بشه؟؟چجوری می خواد کوئری sql رو اجرا کنه؟؟چونه نزنید دیگه.چند بار هم گفتم با اکسپرس کار کنید که نصبش راحت تره.چون شما هم از localDB استفاده میکنید که نصبش فکر کنم با چند تا next هم حل میشه.خود بیل گیتس رو هم بیارید میگه باید نصبش کنی

saharhg
یک شنبه 29 تیر 1393, 16:08 عصر
نه دوست من تا اونجا که میدونم نیازی به نصب SQL نیست و در واقع اینکار اصلا حرفه ای نیست شما باید از برنامتون setup بسازید

mz6488
یک شنبه 29 تیر 1393, 16:41 عصر
نه دوست من تا اونجا که میدونم نیازی به نصب SQL نیست و در واقع اینکار اصلا حرفه ای نیست شما باید از برنامتون setup بسازید

خوب همونه دیگه.باید sql رو به setup اضافه کنیم و یه سری پارامترها واسه نصب اتوماتیک بهش بفرستیم.اگه کسی نمی خواد sql نصب کنه باید بره سراغ sqlite

m.khani_121
دوشنبه 30 تیر 1393, 09:25 صبح
سلام . برادر خیلی اذیت شدی که . ببین اول بانکت رو بزار کنار exe.بعد کانکشن استرینگت شبیه این باشه :

Data Source=.\\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\\Nazer-db.mdf;User Instance=true

بعد برو تو این لینک http://www.microsoft.com/en-us/download/details.aspx?id=29062 این نسخه اکسپرس هست بعد موقع ستاپ سازی میتونی فایل دانلود رو بزاری تو مسیر پیش نیاز های ویژوالت اگه پیدا نکردی مسیر رو بگو تا بهت بگم . موقعی که ستاپ نصب میشه نسخه اکسپرس هم خودش نصب میشه . وقتی هم که از این کانکشن استرینگ استفاده میکنه خودش اتچ میشه .

خیلی هم راحت .

Pedram_Parsian
چهارشنبه 01 مرداد 1393, 15:27 عصر
سلام . برادر خیلی اذیت شدی که . ببین اول بانکت رو بزار کنار exe.بعد کانکشن استرینگت شبیه این باشه :

Data Source=.\\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\\Nazer-db.mdf;User Instance=true

بعد برو تو این لینک http://www.microsoft.com/en-us/download/details.aspx?id=29062 این نسخه اکسپرس هست بعد موقع ستاپ سازی میتونی فایل دانلود رو بزاری تو مسیر پیش نیاز های ویژوالت اگه پیدا نکردی مسیر رو بگو تا بهت بگم . موقعی که ستاپ نصب میشه نسخه اکسپرس هم خودش نصب میشه . وقتی هم که از این کانکشن استرینگ استفاده میکنه خودش اتچ میشه .

خیلی هم راحت .

خوب داداش برنامه من یه جوری هست که می خوام محدودیت ها رو هم در بانگ اطلاعاتی اس کیو ال ذخیره کنم .... و در این صورت اگه SQL Expree روی سیستم مشتری نصب باشه به راحتی میتونه بیاد و اون ها رو حذف کنه !!!!!!

محمد آشتیانی
چهارشنبه 01 مرداد 1393, 15:39 عصر
خوب داداش برنامه من یه جوری هست که می خوام محدودیت ها رو هم در بانگ اطلاعاتی اس کیو ال ذخیره کنم .... و در این صورت اگه SQL Expree روی سیستم مشتری نصب باشه به راحتی میتونه بیاد و اون ها رو حذف کنه !!!!!!

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





موفق باشید.

aliramazani
چهارشنبه 01 مرداد 1393, 16:42 عصر
اگر دیتابیست به صورت فایل باشه همون اس کیو ال کومپکت کفایت میکنه ئلی اگر به صورت سرور باشه باید اس کیو ال سرور را نصب کنی و واسه اینکه کسی نتونه به جدولات دسترسی داشته باشه پسورد بزاری.

mz6488
چهارشنبه 01 مرداد 1393, 16:55 عصر
اگر دیتابیست به صورت فایل باشه همون اس کیو ال کومپکت کفایت میکنه ئلی اگر به صورت سرور باشه باید اس کیو ال سرور را نصب کنی و واسه اینکه کسی نتونه به جدولات دسترسی داشته باشه پسورد بزاری.

sql compact با express فرق میکنه.بستگی به کانشکشن استرینگ داره.sql compact فرمتش sdf هستش و با خود sql server فرق میکنه

aliramazani
چهارشنبه 01 مرداد 1393, 16:59 عصر
ببخشید همون اکسپرس منظورم بود. شما به جای کمپکت بخون اکسپرس!

hsdnhd
چهارشنبه 01 مرداد 1393, 22:41 عصر
آخرهم معلوم نشد چیکار کنند؟خب پس این همه نرم افزارتوی بازارهست با دیتابیس های اس کیو ال وبا روش های مختلف کدنویسی اس کیو ال وموقع نصب هم فقط خود برنامه نصب میشه چیه؟چطوردارند کارمیکنند؟پس راهی باید وجودداشته باشه دیگه

m.khani_121
چهارشنبه 01 مرداد 1393, 23:33 عصر
دوست عزیز همون چیزی که بنده گفتم با فرمایشی که دوست عزیز
Mohammad.Ashtiani (http://barnamenevis.org/member.php?12815-Mohammad-Ashtiani) گفتن رو تلفیق کن صد در صد به نتیجه میرسی

Pedram_Parsian
جمعه 03 مرداد 1393, 11:05 صبح
دوست عزیز همون چیزی که بنده گفتم با فرمایشی که دوست عزیز
Mohammad.Ashtiani (http://barnamenevis.org/member.php?12815-Mohammad-Ashtiani) گفتن رو تلفیق کن صد در صد به نتیجه میرسی

به نتیجه که میرسم !! :لبخند:

ولی به قول دوستمون این همه نرم افزار روی سیستم ما نصب هست که از SQL استفاده می کنه بعد SQL Express روی سیستم ما نصب نیست ؟ یه کم عجیب نیست یعنی همه ی این نرم افزار ها از Compact استفاده می کنند ؟؟ :افسرده:

m.khani_121
جمعه 03 مرداد 1393, 12:24 عصر
دوست عزیز بقیه نرم افزارها یا از sql2000 استفاده میکنند یا همون campact . حالا شما اگه دیگه خیلی میخوای کاربر راحت باشه و عملیات نصب راحتتر باشه sql2000 بزار . کلا طراحی دیتابیستم باید sql2000 باشه .

امیر مهرشاد
جمعه 10 مرداد 1393, 00:42 صبح
اون نرم افزار هایی که میگید مشخص کردید دقیقا از sql استفاده میکنن ؟ ! در ثانی بر فرض مثال هم که استفاده میکنن درست شبیه ستاپ هایی که خودتون در VS میسازید اول میاد چک میکنه که اگر مثلا دات نت رو لوکال نصب بود بیخیال میشه اگر نه شروع میکنه نصب کردن دات نت نسخه خودش

sql2000 هم برای سرعت در نصب خوبه ولی طبق فرمایش دوستان نظر من هم sqlexpress هستش که زمان زیادی از شما در هنگام نصب نمیگره