PDA

View Full Version : سوال: بانک اطلاعاتی نرم افزار تحت شبکه



rezaei_y
شنبه 12 مرداد 1392, 15:06 عصر
با سلام به همه دوستان

در یک نرم افزار تحت شبکه آیا بر روی سیستم سرور حتما باید sql management نصب بشه؟

چندجا دیدم این کار و انجام داده بودن توی فیلم های آموزشی management sql رو نصب میکردن.

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

کسایی که در این زمینه اطلاعات دارن ممنون میشم راهنمایی کنن

massoudghb
شنبه 12 مرداد 1392, 15:18 عصر
سلام .
لازم نیست سیستم های client دارای SQL باشند .. باید روی سرور نصب شود و client ها از سرور استفاده کنند . به عنوان مثال اگر 101 گره در شبکه داشته باشیم .. 100 تا لازم ندارند و یکی که همان سرور است نیازمند نصب SQL است .

rezaei_y
شنبه 12 مرداد 1392, 15:38 عصر
ممنون دوست عزیز اینو میدونم
میخوام بدونم اون یکی که همون سرور حتما باید management studio روش نصب بشه یا میشه از sqlexpress خود ویژوال استادیو هم استفاده کرد

Salah Sanjabian
شنبه 12 مرداد 1392, 15:50 عصر
نه لزومی نداره که SSMS یا همون Sql Server Management Studio رو نصب کنی شما فقط لازمه که Engine رو نصب کنی اگر هم میخای با یه فایل Exe به ساختار دیتابیست دسترسی داشته باشی میتونی خیلی راحت بااین فایل Exe بهش دسترسی داشته باشی بدون اینکه از SSMS استفاده کنی

http://www.softpedia.com/get/Internet/Servers/Database-Utils/Database-NET.shtml

rezaei_y
شنبه 12 مرداد 1392, 16:01 عصر
میشه در خصوص Engineبیشتر توضیح بدین
در این صورت connectionstring رو باید به چه صورت نوشت

Salah Sanjabian
شنبه 12 مرداد 1392, 16:22 عصر
دوست عزیز وقتی Sql Server رو نصب میکنی انتخاب میکنی که چه سرویس هایی رو برات نصب کنه از جمله Database Engine ، Replication ,Integration Service و مابقی . که کار ذخیره بازیابی تیونینگ و ...... رو Database Engineیا همون قلب یه RDBMS انجام میده .SSMS فقط یه IDE هست که کار با Engine رو واست ساده میکنه تو این مورد هم شما نیازی نداری به نصب SSMS چون Engine کار اصلی رو برعهده داره . Connection String هم برایر میشه با نام اینستنسی که خودت انتخاب میکنی . مثلا من وقتی Sql Server رو نصب میکنیم Instance Name رو میزاریم Sample از این به یعد Connection String میشه
data source=.\Sample;initial catalog=YourDbName;integrated security=True

mz6488
شنبه 12 مرداد 1392, 20:21 عصر
حالا چجوری به انجین اتچش کنیم؟دیگه ide که نداریم

rezaei_y
شنبه 12 مرداد 1392, 23:09 عصر
ممنون از راهنماییتون
به قول دوستمون نحوه اتچ به چه صورتیه?
با کد نویسی سی شارپ باید این کار رو انجام داد(اجرای یک اسکریپت) یا روش دیگه ای هم داره

danialafshari
شنبه 12 مرداد 1392, 23:59 عصر
سلام
ببینید Management یک IDE هست که برای طراحی دیتابیس ازش استفاده میشه که همین IDE هم به Service ش وصل میشه
و شما در حدی نصب کنی که SQL Server Configuration Manager نصب باشه برای تعریف User ها، کفایت میکنه
موفق باشی

Salah Sanjabian
یک شنبه 13 مرداد 1392, 10:12 صبح
حالا چجوری به انجین اتچش کنیم؟دیگه ide که نداریم

سلام شما وقتی نرم افزار رو میدین دست مشتری که نباید یه نفر رو هم باهاش بفرستین که دیتابیس رو اتچ کنه یامشتری که نباید اینکارو بکنه. شما وقتی نرم افزارتون برای بار اول اجرا میشه باید DB رو اتچ کنه

rezaei_y
یک شنبه 13 مرداد 1392, 11:21 صبح
خوب نحوه اتچ کردنش به چه صورت؟
قاعدتا باید موقع اجرای نرم افزار بررسی کنه که آیا بانک اطلاعاتی اتچ شده یا نه ود در صورتی که اتچ نباشه اتچش کن؟
چطوری باید این کار و کرد؟

Salah Sanjabian
یک شنبه 13 مرداد 1392, 12:50 عصر
SqlConnection Connection = new SqlConnection("server=.\\sqlexpress;initial catalog=master;integrated security=true");
SqlCommand Cmd = new SqlCommand("select count(*) from sysdatabases where name='YourDBName'", Connection);
Connection.Open();
Result = System.Convert.ToInt32(Cmd.ExecuteScalar());
if (Result == 0)
{
Cmd = new SqlCommand("exec sp_attach_db @dbname='YourDBName',@filename1='" + System.Environment.CurrentDirectory.ToString() + "\\YourDBName.mdf',@filename2='" + System.Environment.CurrentDirectory.ToString() + "\\YourDBName_log.ldf'",Connection);
Cmd.ExecuteNonQuery();
MessageBox.Show("Successful");
}
else
MessageBox.Show("DB already exists");

میتونی از این استفاده کنی