PDA

View Full Version : راه آسان attach دیتابیس به سرور . مشگل همه حل میشه



ali_kolahdoozan
دوشنبه 08 بهمن 1386, 19:56 عصر
از بس دیدم ملت دارن سعی میکنن db رو توی نصب attach کنن خسته شدم پس همه خوب دقت کنید تا بگم چیکار کنید .

البته این بدرد برنامه هایی میخوره که single user است مثل packge ها . کسی برای یک برنامه بروی شبکه setup نمی سازه .

با install shield یک setup بسازید که براتون dotnetframework و msde یا sqlexpress رو نصب کنه . در ضمن script یک restart زورکی هم آخر setup بزارید . فایلهای برنامتون رو هم هر جا میخواهید کپی کنید icon اون رو روی desktop بزارید font لازم داره کپی کنید تغییرات registry میخواهد بدهید همه با install shield راحته اما db کجا attach بشه . اصلا لازم نیست توی setup اینکار رو بکنید . از اینجا خوب گوش کنید

چون بعد از نصب یک restart زورکی هم گذاشتین راحت service برای شما بعد از restart آماده شده و دیگه لازم نیست run کنید
شما توی بر نامتون حتما یک صفحه اولیه دارین که اسم نرم افزار و ... اول کار میاد بعد از چند ثانیه هم می ره و صفحه اصلی یا login میاد . اونجا بهترین جا برای اون کار است .

یک connection به database موجود روی سیستم بزنید . master و از طریق آن یک sqlcommand برای attach دیتابیس خودتون بنویسید . در ضمن موقع نصب db رو کنار exe توی یک فولدر مثلا به نام db بزارید . حالا با application.startuppath می دونید db کجاست راحت attach میشه در ضمن شاید بپرسید خوب با هر بار اجرا attach میشه . خیر کل روند رو توی یک try بزارید و توی cath هیچی ننویسید به این وسیله اگر دیتابیس attach باشه میره توی cath و هیچی اجرا نمیشه .


این یکی از راههاست که من n بار انجام دادم هیچیش هم نیست

sh
سه شنبه 09 بهمن 1386, 16:46 عصر
کسی برای یک برنامه بروی شبکه setup نمی سازه

براحتی میشه برای شبکه هم Setup درست کرد .

ali_kolahdoozan
سه شنبه 09 بهمن 1386, 21:54 عصر
میشه . اما مرسوم نیست . دلیل خاصی نداره اکثرا نیاز به مراجعه خود گروه هست اما بله میشه

boof1363
دوشنبه 15 بهمن 1386, 15:51 عصر
سلام
منون از راحنماییتون میشه بگید چطور میشه یک Sqript ساخت که Restart کنه؟

boof1363
دوشنبه 15 بهمن 1386, 16:08 عصر
ممنون از راحنماییتون
میشه در مورد توضیحی که در قسمت 1# دادید یه کدی یا یه مثالی بزنید که بیشتر متوجه شیم
مرسی

m_zi
سه شنبه 16 بهمن 1386, 07:38 صبح
مرسی از توضیحاتتون
میشه یک نمونه از setup را اینجا بذارید خیلی وقته که دنبال این موضوع می گشتم خوشحال شدم دیدم ولی نمی دونم چه جوری بسازم.

باز هم ممنون

ali_kolahdoozan
دوشنبه 29 بهمن 1386, 12:51 عصر
من فقط راه حل رو گفتم . بقیش با خود شماست

boof1363
سه شنبه 30 بهمن 1386, 06:34 صبح
برای attach دیتابیس لازمه که مسیر فایل mdf و ldf رو داشته باشیم این مسیر رو چه طوری بدیم اگه dbمون رو کنار exe تو install sheild بزاریم؟

User-os
سه شنبه 30 بهمن 1386, 12:45 عصر
http://barnamenevis.org/forum/showthread.php?t=95474

آریوس1985
دوشنبه 13 اسفند 1386, 15:17 عصر
این یه نمونه کوچک

class Return_DB
{
SqlConnection con = new SqlConnection();
public Return_DB()
{
try
{
con.ConnectionString = "Integrated Security = True;" +
"Initial Catalog = Master;" +
"Data Source = .\\sqlexpress";
}
catch(Exception e)
{
MessageBox.Show("an error was detected = "+ e.Message.ToString());
}
}
public void Check_Copy()
{
string path = Application.StartupPath;
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = @"
IF NOT EXISTS (SELECT name from dbo.sysdatabases WHERE name = 'Account')
RESTORE DATABASE Account FROM DISK = '" + path +"\\Acc2.bak' (file://\\Acc2.bak') WITH REPLACE";
con.Open();
com.ExecuteNonQuery();
con.Close();
}
}

Khalil morradi
سه شنبه 21 اسفند 1386, 15:42 عصر
آره این راه خوبیه ولی درست ترش اینه که از کل بانک جداول، ویو ها relation ها و ... اسکریپت درست کنی و در setup نصبیت بذاری

ali_kolahdoozan
چهارشنبه 22 اسفند 1386, 07:53 صبح
میتونید کل SCRIPT رو هم طبق آنچه گقتم در اولین اجرا RUN کنید

ghuzebalaghuz
شنبه 15 فروردین 1388, 10:16 صبح
این یه نمونه کوچک

class Return_DB
{
SqlConnection con = new SqlConnection();
public Return_DB()
{
try
{
con.ConnectionString = "Integrated Security = True;" +
"Initial Catalog = Master;" +
"Data Source = .\\sqlexpress";
}
catch(Exception e)
{
MessageBox.Show("an error was detected = "+ e.Message.ToString());
}
}
public void Check_Copy()
{
string path = Application.StartupPath;
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = @"
IF NOT EXISTS (SELECT name from dbo.sysdatabases WHERE name = 'Account')
RESTORE DATABASE Account FROM DISK = '" + path +"\\Acc2.bak' (file://%5C%5CAcc2.bak%27) WITH REPLACE";
con.Open();
com.ExecuteNonQuery();
con.Close();
}
}

سلام
آقا ببخشید این کد برای چه کاریه
attach کردن؟:متفکر:

mom alone
یک شنبه 16 فروردین 1388, 00:49 صبح
دوستمون می خاسته اینو بگه



this.sqlConnection1.ConnectionString = "Data Source=.;AttachDbFilename=D:\\aloneabouzar_Data.MD F;Initial Catalog=aloneabou" +
"zar2008;Integrated Security=True";


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

parsawq
یک شنبه 20 اردیبهشت 1388, 10:47 صبح
من مي خوام ديتابيس با برنامه نصب attach شه و نيازي به اين كار توسط كاربر نباشه
با برنامه نويسي درinstall shield چطور ميشه اين كاررو انجام داد؟ لطفا توضيح بديد . مرسي