PDA

View Full Version : سوال: در ساخت setup برنامه کدام بهتر است؟ attach کردن mdf , ldf یا استفاده از script



amingole
سه شنبه 14 شهریور 1391, 11:14 صبح
برای ساخت setup برنامه به نظر دوستان کدام را بهتر است؟
1: mdf و ldf را مستقیم یک کد بنویسم و به database وصل کنم
2: از script database استفاده کنم

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

amingole
سه شنبه 14 شهریور 1391, 11:44 صبح
خوبه که بچه ها این همه فعالا و جواب دادن :D

mhsmity
سه شنبه 14 شهریور 1391, 12:16 عصر
سلام
من سوال رو متوجه نشدم !!!! :گیج:

وقتی من ستاپ می سازم فایل های دیتابس ور انتخاب می کنم و بعد ستاپ برنامه رو می سازم
آیا ؟ شما می خوای بگید که در اولین اجرای برنامه فایل دیتابس ساخته بشه؟
یا اصلا موضوع چیزی دیگه ای هستش ؟؟
ممنون باسوالتون بازم راهنمای کنید

amingole
سه شنبه 14 شهریور 1391, 12:43 عصر
اول تشکر کنم که پست را جواب دادین.
من نرم افزار را روی کامپیوتر مقصد نصب می کنم و sql sever را هم نصب می کنم حال نوبت اضافه شدن database برنامه به sql sever است 2 راه وجود دارد برای این کار:
1 : بعد از نصب sql sever در زمان اجرای نرم افزار خودم script دیتابیس خود را run کنم تا دیتابیسم در sql sever ایجاد شود
2: یا می توانم mdf و ldf دیتابیس را کنار exe پروژه قرار بدهم و در زمان اجرا برنامه خودم mdf را به sqlsever attach کنم

کدام راه حالا بهتر است؟

firoozi90
سه شنبه 14 شهریور 1391, 14:35 عصر
سلام دوست عزیز
فایل های دیتابیست رو بزار توی پوشه دیباگ پروژت و از کانکشن استرینگ زیر استفاده کن.در این صورت دیگه نیازی به اتچ کردن هم نداری



@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";

m0hammad_01
سه شنبه 14 شهریور 1391, 14:40 عصر
سلام
من بیشتر سعی می کنم دیتابیس رو با اسکریپت به SQL SERVER اتچ کنم.
بعضی موقع ها لازم هست دیتابیس خام نباشه و یه سری داده توش قرار داده بشه قبل اینکه در محل نصب، اتچ شه.که نمیشه از اسکریپت ساخت دیتابیس استفاده کرد.

firoozi90
سه شنبه 14 شهریور 1391, 16:24 عصر
سلام
من بیشتر سعی می کنم دیتابیس رو با اسکریپت به SQL SERVER اتچ کنم.
بعضی موقع ها لازم هست دیتابیس خام نباشه و یه سری داده توش قرار داده بشه قبل اینکه در محل نصب، اتچ شه.که نمیشه از اسکریپت ساخت دیتابیس استفاده کرد.

در این حالت هم دیتابیس خام نمیمونه
من دوتا از پروژه هام رو از این طریق کانکت کردم و تا الانم مشکلی نبوده

amingole
سه شنبه 14 شهریور 1391, 17:11 عصر
می توان script با Data گرفت که وقتی باز شود همه data ها هم اضافه شود

amingole
سه شنبه 14 شهریور 1391, 17:17 عصر
سلام دوست عزیز
فایل های دیتابیست رو بزار توی پوشه دیباگ پروژت و از کانکشن استرینگ زیر استفاده کن.در این صورت دیگه نیازی به اتچ کردن هم نداری



@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";


ممنون از کمک
من از هر 2 راه استفاده کردم و جواب داد ولی دنبال دلایل منطقی برای مقایسه 2 تا راه هستم :)

m0hammad_01
سه شنبه 14 شهریور 1391, 17:58 عصر
در این حالت هم دیتابیس خام نمیمونه
من دوتا از پروژه هام رو از این طریق کانکت کردم و تا الانم مشکلی نبوده
من منظورم اینه که بعد از نصب برنامه، دیتابیس با کد ساخته میشه (جداول و ...).
شما چطوری میگی خام نمیمونه؟
اگه منظورتون همینه، لطفا توضیح کوتاهی بدین من هم بدونم.ممنون

firoozi90
سه شنبه 14 شهریور 1391, 20:09 عصر
الان منظورتونو فهميدم چي بودش
من اشتباه برداشت كردم

m0hammad_01
سه شنبه 14 شهریور 1391, 20:39 عصر
می توان script با Data گرفت که وقتی باز شود همه data ها هم اضافه شود
درسته.حواسم نبود:چشمک:

amingole
چهارشنبه 15 شهریور 1391, 09:42 صبح
kasi az dustan dalili peyda nakard?

amingole
یک شنبه 19 شهریور 1391, 13:31 عصر
.................

Yasersadegh
یک شنبه 19 شهریور 1391, 14:07 عصر
سلام دوست عزیز
به نظر من اتچ کردن دیتابیست به SQL server در اولین نسخه از برنامه بهتره!! به دلیل اینکههمون اجرای اسکریپت در برنامه (ولو اینکه یکبار بیشتر این اتفاق نمی افته) زمان بره!!یعنی شما که می تونید دیتابیس آماده رو 3 سوت به اسکوئل اتچ کنید چه کاریه یه کد طولانیی بنویسید که اینکارو انجام بده!!:اشتباه:
اما زمانی که برنامه تون رو نسخه دوم و سوم و n ام رو خواستید نصب کنید اگر در ساختار دیتابیس شما تغییری ایجاد شده بود (یعنی در یک جدول فیلدی اضافه یا کم شود) شما میتونید از روش اسکریپت نویسی اون یه کد رو تویه دیتابیس سیستم مقد هم اضافه کنید!:متفکر:
یعنی هر دو روش خوبه ولی در جای خودش!!:لبخند:

armsoftpc
یک شنبه 19 شهریور 1391, 16:01 عصر
با سلام
می دونم نظرم ممکن به سوال ربطی نداشته باشه، ولی چرا به جای این همه دردسر نمی آیی و از sqlight استفاده کنی، نیاز به نصب توی سیستم کاربر هم نمی خواد.

aminaltavista
یک شنبه 19 شهریور 1391, 16:02 عصر
سلام دوست عزیز
فایل های دیتابیست رو بزار توی پوشه دیباگ پروژت و از کانکشن استرینگ زیر استفاده کن.در این صورت دیگه نیازی به اتچ کردن هم نداری



@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";

سلام
آیا با این روش دیتابیس اتوماتیک اتچ میشه؟ نیازی هست که اس کیو ال اکسپرس رو هم نصب کرد؟ من دیتابیسم اس کیو ال 2008 هست . اگه نیاز هست اکسپرس هم نصب بشه برا 2008 باید چگونه کار کنم!
ممنون از پاسخ خوبتون.

roolinjax
یک شنبه 19 شهریور 1391, 17:36 عصر
با سلام
من روشی که آقای firoozi90 گفتن رو خیلی جاها خوندم اما به نظرم یه ایرادی که داره اینه که اگر از این روش استفاده بشه با فایل های دیتابیس شما مثل اکسس برخورد میشه و دیتابیس بصورت آنلاین با نرم افزار اس کیو ال سرور ارتباط نداره.
یعنی موقعی که نیاز به انجام عملی پیش میاد یه لحظه ارتباط برقرار میشه و عملیات انجام میشه و ارتباط قطع میشه.
واسه همینه که اگر به محل فایل های دیتابیس برید می تونید به سادگی اون فایل ها رو حذف یا جابجا کنید.
به نظرم اسکریپت نویسی خیلی بهتره و در کل چون ارتباط دائمی داره توی انجام عملیات برای تعداد رکورد بالا سرعت عمل بهتری خواهد داشت.
موفق باشید.

mohammad bayervand
چهارشنبه 22 شهریور 1391, 04:43 صبح
سلام عزیزان
این را هم در نظر بگیرید که اضافه کردن دیتا بیس به فایل ستاپ حجم فایل را زیاد میکنه
و کار پشتیبانی اینترنتی , مانند ارسال فایل برنامه از طریق خط تلفن را طولانی تر میکنه.

shocraneh
چهارشنبه 22 شهریور 1391, 06:48 صبح
باسلام دوستمون درست میگه ،چون یه سری جداول مثل جدول یوزرها و ... باید مقدار داشته باشه بهتره فایل خود بانک اتچ بشه

amingole
چهارشنبه 22 شهریور 1391, 12:40 عصر
با سلام
می دونم نظرم ممکن به سوال ربطی نداشته باشه، ولی چرا به جای این همه دردسر نمی آیی و از sqlight استفاده کنی، نیاز به نصب توی سیستم کاربر هم نمی خواد.

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

amingole
چهارشنبه 22 شهریور 1391, 12:41 عصر
سلام
آیا با این روش دیتابیس اتوماتیک اتچ میشه؟ نیازی هست که اس کیو ال اکسپرس رو هم نصب کرد؟ من دیتابیسم اس کیو ال 2008 هست . اگه نیاز هست اکسپرس هم نصب بشه برا 2008 باید چگونه کار کنم!
ممنون از پاسخ خوبتون.

na be in soorat attach nemishavad va tahte shabake nemituni estefade koni

amingole
چهارشنبه 22 شهریور 1391, 12:57 عصر
....................

armsoftpc
چهارشنبه 22 شهریور 1391, 14:49 عصر
سلام
آیا با این روش دیتابیس اتوماتیک اتچ میشه؟ نیازی هست که اس کیو ال اکسپرس رو هم نصب کرد؟ من دیتابیسم اس کیو ال 2008 هست . اگه نیاز هست اکسپرس هم نصب بشه برا 2008 باید چگونه کار کنم!
ممنون از پاسخ خوبتون. با سلام
نه دوست عزیز اتچ دیگه چه صیغه ای؟!!!
هیچی هم نیاز نداره که نصب کنی، کلا عملیات ها با ضمیمه کردن یک فایل dll انجام میشه، فایل دیتابیس که یک فایل کوچک است(البته در ابتدا) کنار فایل اصلی برنامه در پوشه debug یا realse قرار بدید(پوشه ای که خود برنامه در اون جا است)، و به صورت زیر می توانید از کد زیر استفاده کنید.


using System.Data.SQLite;

var connection = new SQLiteConnection(@"Data Source=" +
@"mydb.db;Version=3;");

try
{
connection.Open();
}
catch
{
MessageBox.Show("!برنامه نمی تواند به پایگاه داده متصل شود", "خطا در برقراری ارتباط");
}

amingole
سه شنبه 18 مهر 1391, 13:59 عصر
با سلام
نه دوست عزیز اتچ دیگه چه صیغه ای؟!!!
هیچی هم نیاز نداره که نصب کنی، کلا عملیات ها با ضمیمه کردن یک فایل dll انجام میشه، فایل دیتابیس که یک فایل کوچک است(البته در ابتدا) کنار فایل اصلی برنامه در پوشه debug یا realse قرار بدید(پوشه ای که خود برنامه در اون جا است)، و به صورت زیر می توانید از کد زیر استفاده کنید.


using System.Data.SQLite;

var connection = new SQLiteConnection(@"Data Source=" +
@"mydb.db;Version=3;");

try
{
connection.Open();
}
catch
{
MessageBox.Show("!برنامه نمی تواند به پایگاه داده متصل شود", "خطا در برقراری ارتباط");
}
in juri barname tu shabake kar nemikone