View Full Version : سوال درباره ایجاد فایل نصبی به همراه SQL و فونت ها
mesteramir
دوشنبه 13 شهریور 1396, 13:22 عصر
سلام دوستان خسته نباشید
من سرچ کردم ولی به جوابی که میخواستم نرسیدم متاسقانه اینه که تاپیک زدم
من سوالم اینه که برنامه ای نوشتم که دیتابیسش Microsoft SQL Server Management 2008 r2 هست. و با ویژوال 2010
الان میخوام فایل نصبی ایجاد کنم که همه فایلهای از جمله دیتابیس و فونت ها موقع نصب، نصب بشن و ما کار اضافی نکنیم
مشکلم توی دیتابیس هست که سرچ کردم و نوشته بودن باید Sql Express همراهش نصب بشه
آیا این دیتابیس که الان من دارم اونجا کار نمیکنه؟؟
فرق EXpress با اینی که من درست کردم چیه؟؟
و من چجوری میتونم بدون این که مشکلی پیش بیاد دیتابیسو نصب کنم؟؟
ممنون میشم راهنمایی کنید
و اگه لینکی دارید معرفی کنید
رامین مرادی
دوشنبه 13 شهریور 1396, 14:48 عصر
منظور از اکسپرس نسخه اس کیو ال سرور هست.
الان رو سیستم شما به احتمال زیاد نسخه کامل نصب شده که حجمش حدود یک و نیم گیگ هست.
ولی اکسپرس حجمش خیلی کم و مناسب نصب رو سیستم مشتری هست.
شما همون دیتابیس رو انتقال میدی به سیستم مشتری و اتچ میکنی اونجا.
mesteramir
دوشنبه 13 شهریور 1396, 15:57 عصر
ممنون از پاسختون
الان کانکشن استرینگ من در تمام کد ها به این صورت هست:
Con.ConnectionString = "Data Source=(local);Initial Catalog=Kahrizak;Integrated Security=True";
اونطرف مشکلی پیش نمیاد؟؟
و سوال اینکه چجوری توی ستاپ کاری کنیم که موقع نصب خود دیتابیس اتچ بشه و ما دیگه خودمون انجام ندیم؟
prans68
دوشنبه 13 شهریور 1396, 16:41 عصر
سلام برادر
راهای زیادی هست شما میتونی ip و نام کاربری و ... داخل یه فایل کانفیگ بگذاری و هنگام روشن شدن سیستم بیاد اون تکست فایل رو بخونه و وصل بشه به دیتابیس - اگر محل دیتابیس یا اسم و یوزر عوض شد میتونی از داخل تکست کانفیگ فایل عوض بکنی. و نیاز نیست داخل کد چیزی عوض بشه(این روش مشکل امنیتی هم دارد ولی میشه خیلی جاها ازش صرف نظر کرد)
سوال دوم شما اینکه چطوری میتونم دیتابیس رو اتچ کنم. یکم سوال کامل نیست - وقتی برنامه ای برای اولین بار نصب میشه دیتابیسش هم معمولا خالی هست - پس شما نیاز دارید دیتابیس رو با native qury sql بسازی - یعنی بهش دستور ساخت جداول رو بفرستی تا برات بسازه - اگر هم باز میخای دیتای آماده داخلش وارد کنی و دیتابیس اتچ کنی بهتر هست فایل بک آپ رو بهش بدی(از دیتابیس اصلی بک آپ بگیری به جای اینکه خود دیتابیس رو بیاری) برات ریستور بکنه - ولی لازمش اینه اول یه دستور sql بدی به موتور sql برات فقط نام دیتابیستو هم نام با دیتابیس بک آپ بسازه و بعدش باز با دستور sql بک آپ رو روش بریزی(اینجوری جداول و ارتباطات رو هم برات خودش میسازه) - و اصلا نیازی نیست دستی اینکارها انجام بشه ما برای ساخت جدول یا دیتابیس یا بگ آپ گرفتن و ریستور دستور sql داریم و معمولا افراد حرفه ای تمام کاراشون رو با query انجام میدهند. حال پیشنهاد من اینه بعد از این پروژه هاتون رو شما با EF Cod Frst کار کنید در اون حالت نیازی به دستورات sql نخواهید داشت و یا اگر دات نت نیستید حتما با ORM ها کار کنید. موفق باشید.
در زیر لینک براتون میگذارم که نحوه بک گرفتن وریستور با sql query رو توضیح داده
https://www.mssqltips.com/sqlservertutorial/20/sql-server-backup-database-command/
https://stackoverflow.com/questions/18261276/restore-database-sql-server-query
در لینک زیر نحوه ساخت جداول و دیتابیس با sql query رو براتون میگذارم
https://www.w3schools.com/sql/sql_create_db.asp
https://www.w3schools.com/sql/sql_create_table.asp
موفق و پیروز باشید.
اگر سوالی بود از طریق ایدی زیر بپرسید
@malek_ashtarr
mesteramir
دوشنبه 13 شهریور 1396, 19:59 عصر
سلام برادر
راهای زیادی هست شما میتونی ip و نام کاربری و ... داخل یه فایل کانفیگ بگذاری و هنگام روشن شدن سیستم بیاد اون تکست فایل رو بخونه و وصل بشه به دیتابیس - اگر محل دیتابیس یا اسم و یوزر عوض شد میتونی از داخل تکست کانفیگ فایل عوض بکنی. و نیاز نیست داخل کد چیزی عوض بشه(این روش مشکل امنیتی هم دارد ولی میشه خیلی جاها ازش صرف نظر کرد)
سوال دوم شما اینکه چطوری میتونم دیتابیس رو اتچ کنم. یکم سوال کامل نیست - وقتی برنامه ای برای اولین بار نصب میشه دیتابیسش هم معمولا خالی هست - پس شما نیاز دارید دیتابیس رو با native qury sql بسازی - یعنی بهش دستور ساخت جداول رو بفرستی تا برات بسازه - اگر هم باز میخای دیتای آماده داخلش وارد کنی و دیتابیس اتچ کنی بهتر هست فایل بک آپ رو بهش بدی(از دیتابیس اصلی بک آپ بگیری به جای اینکه خود دیتابیس رو بیاری) برات ریستور بکنه - ولی لازمش اینه اول یه دستور sql بدی به موتور sql برات فقط نام دیتابیستو هم نام با دیتابیس بک آپ بسازه و بعدش باز با دستور sql بک آپ رو روش بریزی(اینجوری جداول و ارتباطات رو هم برات خودش میسازه) - و اصلا نیازی نیست دستی اینکارها انجام بشه ما برای ساخت جدول یا دیتابیس یا بگ آپ گرفتن و ریستور دستور sql داریم و معمولا افراد حرفه ای تمام کاراشون رو با query انجام میدهند. حال پیشنهاد من اینه بعد از این پروژه هاتون رو شما با EF Cod Frst کار کنید در اون حالت نیازی به دستورات sql نخواهید داشت و یا اگر دات نت نیستید حتما با ORM ها کار کنید. موفق باشید.
در زیر لینک براتون میگذارم که نحوه بک گرفتن وریستور با sql query رو توضیح داده
https://www.mssqltips.com/sqlservertutorial/20/sql-server-backup-database-command/
https://stackoverflow.com/questions/18261276/restore-database-sql-server-query
در لینک زیر نحوه ساخت جداول و دیتابیس با sql query رو براتون میگذارم
https://www.w3schools.com/sql/sql_create_db.asp
https://www.w3schools.com/sql/sql_create_table.asp
موفق و پیروز باشید.
اگر سوالی بود از طریق ایدی زیر بپرسید
@malek_ashtarr
ممنون از پاسخ و وقتی که گذاشتید
توضیحاتتون خیلی کامل بود
ولی فکر کنم منظور من رو کامل متوجه نشدین
من برنامه توی سی شارپ نوشتم و کامل شده، الان میخوام فایل ستاپ بسازم و تحویل مشتری بدم که ازش استفاده کنه، میخوام که موقع نصب مشتری دیگه دست به کارهای اضافه نزنه و فقط فایلی نصبی که بهش دادم رو نصب کنه و از برنامه استفاده کنه.
چجوری میتونم توی فایل ستاپ از کوئری های خود SQL استفاده کنم و دیتابیس موقع نصب برنامه ای که من ساختم ،تو سیستم مقصد ساخته بشه. و اینکه اگه برنامه Sql Server اصلی که تقریبا 4 5 گیگ هست برای یه برنامه 30 مگی به صرفه نیست و باید از SqlExpress استفاده بشه(طبق تحقیقاتی که کردم) که سایز کمتری کمتری داره و جدود 50 مگه.
و سوال دیگه اینکه
من توی کانکشن استرینگ از کد زیر استفاده کردم:
Con.ConnectionString = "Data Source=(local);Initial Catalog=Kahrizak;Integrated Security=True";
من اگه بخوام با SqlExpress به دیتابیسم وصل بشم آیا این کد جواب میده یا ارور میده؟؟
prans68
سه شنبه 14 شهریور 1396, 08:38 صبح
سلام برادر شما باید داخل برنامه چک کنید که اگر دیتابیس وجود ندارد آن را با دستورت sql بسازد. الان شما کل جداول رو دارین و رابطه هارو در دیتابیس خودتون کافی ازش یه خروجی sql بگیرین و همون دستورات رو براش ارسال کنید در صورت نبود خود دیتابیس. نحوه گرفتن خروجی sql از دیتابیس رو براتون میگذارم
https://docs.microsoft.com/en-us/sql/relational-databases/scripting/generate-and-publish-scripts-wizard
اگر این رشته اتصالی که بالا نوشتی رو بخای داخل برنامت قرار بدی باید دیتابیس هم روی همان سیستم باشد چون دارین لوکال آدرس میدین ولی اگر قرار هست که آدرس لوکال نباشد و دیتابیس در یک سیستم دیگیری باشد و چنیدن برنامه بهش همزمان وصل بشوند بهتر هست از روشی که قبلا گفتم استفاده بکنید.
برای ساخت ستاپ همون نسخه اکسپرس رو استفاده کنید چون رایگان هست ولی محدودیت دارد دیتابیس شما نمیتواند بالای 10 گیگ باشد.
در ضمن در صورت لوکال بود دیتابیس و داشتن همین دیتابیس با نام Kahrizak داخل موتور sql باید عرض کنم که این رشته اتصالتون نباید خطا بدهد.
mesteramir
سه شنبه 14 شهریور 1396, 09:59 صبح
سلام برادر شما باید داخل برنامه چک کنید که اگر دیتابیس وجود ندارد آن را با دستورت sql بسازد. الان شما کل جداول رو دارین و رابطه هارو در دیتابیس خودتون کافی ازش یه خروجی sql بگیرین و همون دستورات رو براش ارسال کنید در صورت نبود خود دیتابیس. نحوه گرفتن خروجی sql از دیتابیس رو براتون میگذارم
https://docs.microsoft.com/en-us/sql/relational-databases/scripting/generate-and-publish-scripts-wizard
اگر این رشته اتصالی که بالا نوشتی رو بخای داخل برنامت قرار بدی باید دیتابیس هم روی همان سیستم باشد چون دارین لوکال آدرس میدین ولی اگر قرار هست که آدرس لوکال نباشد و دیتابیس در یک سیستم دیگیری باشد و چنیدن برنامه بهش همزمان وصل بشوند بهتر هست از روشی که قبلا گفتم استفاده بکنید.
برای ساخت ستاپ همون نسخه اکسپرس رو استفاده کنید چون رایگان هست ولی محدودیت دارد دیتابیس شما نمیتواند بالای 10 گیگ باشد.
در ضمن در صورت لوکال بود دیتابیس و داشتن همین دیتابیس با نام Kahrizak داخل موتور sql باید عرض کنم که این رشته اتصالتون نباید خطا بدهد.
خیلی ممنون و تشکر از شما
فکر کنم به جوابم رسیدم
لطف کردین دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.