PDA

View Full Version : نصب و انتقال دیتابیس و attach کردن فایل آن در مقصد



rostamedastan
سه شنبه 18 مهر 1385, 12:24 عصر
بسم الله الرحمن الرحیم
سلام علیکم:
من می خواهم با استفاده از کد بتوانم پایگاه داده ام را که در کنار فایل exe قرار دارد attach کنم تا هنگامیکه کاربر با برنامه کار کی کند بانک به طور اتوماتیک attach شود جست و جو هم کردم و کدهای زیر را بدست آوردم اما اولی فقط زمانیکه پایگاه داده در اس کیو ال سرور attach شده باشد تنها به آن وصل می شود و عمل attach را انجام نمی دهد و دومی هم خطا می دهد :
کد اول :

String strcon = "Initial Catalog=student;Integrated Security=SSPI";

کد دوم :

string sqlConnection1.ConnectionString = "Data Source=computer name\\SQLEXPRESS;AttachDbFilename="+Application.ExecutablePath+"\\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

که این کد خطای زیر را می دهد :

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server

در ضمن بنده از .net 2005 و sql server 2000 استفاده می کنم.

Milad Mohseny
سه شنبه 18 مهر 1385, 16:32 عصر
این SP رو اجرا کن

sqlCmd.CommandText = "EXECUTE sp_attach_db @dbname,@filename1,@filename2";
sqlCmd.Parameters.Add("@dbname", SqlDbType.VarChar, 260).Value = dbname;
sqlCmd.Parameters.Add("@filename1", SqlDbType.VarChar, 260).Value = filename1;
sqlCmd.Parameters.Add("@filename2", SqlDbType.VarChar, 260).Value = filename2;
sqlCmd.ExecuteNonQuery();

rostamedastan
چهارشنبه 19 مهر 1385, 23:17 عصر
با سلام
کد شما را نوشتم این error را می دهد :

ExecuteNonQuery: Connection property has not been initialized.

Milad Mohseny
پنج شنبه 20 مهر 1385, 00:05 صبح
دلیلش ساده است چون باید کارهای مقدماتی رو انجام بدی مثل connect کردن به sqlserver.
و همچنین دستور زیر رو هم فراموش نکنید.
;()sqlcmd=sqlconnection1.CreatCommand

rostamedastan
پنج شنبه 20 مهر 1385, 12:34 عصر
من کد زیر را وارد می کنم و آدرس پایگاه داده را نیز درست وارد کردم اما روی دستور sqlcmd.ExecuteNonQuery(); error زیر را می دهد

Device activation error. The physical file name 'C:\Documents and Settings\taze\My Documents\Visual Studio 2005\Projects\bank1\bank1\bin\Debug\student_data.m df' may be incorrect.


کد :


string strsql, strcon;
SqlConnection sqlconnection1;
SqlCommand sqlcmd;
DataSet ds = new DataSet();
SqlDataAdapter da;
sqlcmd = new SqlCommand();
sqlconnection1 = new SqlConnection();
sqlcmd = sqlconnection1.CreateCommand();

strcon ="initial catalog=;integrated security=SSPI;";

sqlconnection1.ConnectionString = strcon;
sqlconnection1.Open();
sqlcmd.Connection = sqlconnection1;

sqlcmd.CommandText = "EXEC sp_attach_db @dbname,@filename1,@filename2";
sqlcmd.Parameters.Add("@dbname", SqlDbType.VarChar, 260).Value = "student";
sqlcmd.Parameters.Add("@filename1", SqlDbType.VarChar, 260).Value = "C:\\Documents and Settings\\taze\\My Documents\\Visual Studio 2005\\Projects\bank1\\bank1\\bin\\Debug\\student_d ata.mdf";
sqlcmd.Parameters.Add("@filename2", SqlDbType.VarChar, 260).Value = "C:\\Documents and Settings\\taze\\My Documents\\Visual Studio 2005\\Projects\bank1\\bank1\\bin\\Debug\\student_l og_ldf";
sqlcmd.ExecuteNonQuery();

Milad Mohseny
پنج شنبه 20 مهر 1385, 15:26 عصر
برای این کار احتیاج به SqlDataAdapter و DataSet نیست فقط کانکشن و کامند کافی است.
در قسمت connection string تعیین کنید که به دیتابیس master وصل بشه

rostamedastan
پنج شنبه 20 مهر 1385, 19:37 عصر
به صورت زیر اصلاح کردم ولی باز هم همان error را داد :
strcon = "Initial Catalog=master;Integrated Security=SSPI";

error :
Device activation error. The physical file name 'C:\Documents and Settings\taze\My Documents\Visual Studio 2005\Projects\bank1\bank1\bin\Debug\student_Data.m df' may be incorrect.

Milad Mohseny
پنج شنبه 20 مهر 1385, 20:56 عصر
در قسمت پسوند ها فاصله قرار دادی student_Data.m df و student_l og_ldf که اصلاً پسوند نداره و بین L و O فاصله گذاشتی

rostamedastan
جمعه 21 مهر 1385, 11:44 صبح
تو برنامه رو نگاه کردم درست بود در اینجا اشتباه نوشتم و همان error را که گفتم میده.

rostamedastan
جمعه 21 مهر 1385, 13:14 عصر
آقا دستت درد نکنه دوباره امتحان کردم اشکال از من بود 100% جواب داد
انشا الله همیشه موفق باشید.

shahab_ss
یک شنبه 21 آبان 1385, 23:23 عصر
سلام به دوستان عزیز

البته سوال من کمی قدیمی و به احتمال زیاد تکراریه اما جستجو کردم ( البته فقط کمی ) و جوابم را پیدا نکردم.

طریقه نصب دیتابیس ( Attach کردن) در SQL Server 2000,2005 چگونه است ؟!

لطفآ بصورت جداگانه( برای هرکدام آنها) و قدم به قدم برای من توضیح دهید.

ممنون

Y2K
یک شنبه 21 آبان 1385, 23:58 عصر
2000 رو من میگم 2005 رو بقیه
البته فکر نکنم زیاد فرقی داشته باشه
بعد از اجرا کردن SQL Server Enterprise Manager از منوی درختی بر روی شاخه DataBases کلیک راست کرده و از منوی All Tasks گزینه Attach Database را انتخاب می کنیم
سپس بر روی دکمه ای که سه نقطه بر روی آن قرار دارد کلیک کرده و دیتابیس خود را که قبلا در جایی از هارد دیسک ذخیره کرده ایم انتخاب کرده(فایلی با پسوند MDF) و دکمه OK را می زنیم و باز هم Ok.
بدین صورت دیتابیس به SQL Server اضافه می شود.

shahab_ss
دوشنبه 22 آبان 1385, 06:58 صبح
دوست خوبم آقا یونس ممنون از اینکه جواب دادی.
من سوالم رو درست مطرح نکرده بودم.
من توی c# و از طریق کد میخام این کار رو انجام بدم.

sarvestan
دوشنبه 22 آبان 1385, 10:27 صبح
اجرای storeprocedure مربوطه !
sp_attach_db
یا در سایت جستجو کنید و یا در راهنمای Transact sql در sql-server
خیلی سریع به جواب می رسید

bahman.net
چهارشنبه 24 آبان 1385, 00:20 صبح
می تونی یک sql script از پایگاه داده ات تو sql server ایجاد کنی و اونو توی نصب برنامهات قرار بدی و اجراش کنی با این کار می تونی اونو تو sql server اضافه کنی
موفق باشی

choobin84
دوشنبه 28 خرداد 1386, 12:38 عصر
برنامه هایی که با بانک اطلاعاتی sql‌نوشته می شوند، آیا لازم است که حتما SQL server مایکروسافت نصب شود؟
نمیشه کاری کرد که کاربر نیازی به نصب جداگانه sql نداشته باشد و برنامه کار attach رو خودکار انجام بده؟
(attach کردن از طریق برنامه روی بانک رو بلدم)

اَرژنگ
دوشنبه 28 خرداد 1386, 12:54 عصر
برنامه هایی که با بانک اطلاعاتی sql‌نوشته می شوند، آیا لازم است که حتما SQL server مایکروسافت نصب شود؟
نمیشه کاری کرد که کاربر نیازی به نصب جداگانه sql نداشته باشد و برنامه کار attach رو خودکار انجام بده؟
(attach کردن از طریق برنامه روی بانک رو بلدم)
یعنی چی؟ منظورتان اینکه که برنامه‌ای که با داتابیس کار میکنه ، بدونه داتابیس کار کنه؟ یا چیزه دیگری را داریدمیپرسید؟

nashenase2
دوشنبه 28 خرداد 1386, 15:33 عصر
یعنی چی؟ منظورتان اینکه که برنامه‌ای که با داتابیس کار میکنه ، بدونه داتابیس کار کنه؟ یا چیزه دیگری را داریدمیپرسید؟

منظورشون اینه که آیا همونطور که برای اجرا شدن برنامه های دات نت نیاز به دات نت فریم ورک هست آیا برای بخش sql آن هم نیاز یه نصب sql server روی ماشینی که قرار برنامه روش اجرا بشه نصب بشه

نه نیازی نیست که کل sql server را نصب کنید فقط کافیه msde مخفف (microsoft desktop engine ) که معمولا درون خود سی دی sql server هست را نصب کنید
البته بایستی برای attach کردن دیتا بیس هاتون کد نویسی کنید

برا این عمل هم در books online دنبال sp_attach_db و sp_dettach_db باشین

store procedure اولی برای attach کردن و دومی برای detachکردن دیتا بیس ها هستند
فکر کنم بقیش را خودتون متوجه بسین

البته نیازی نیست که بگردین من الان کد و توضیحاتش را که در خود book online هست را میذارم

برای attach کردن ان را بخون









sp_attach_db
Attaches a database to a server.

Syntax
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]

Arguments
[@dbname =] 'dbname'

Is the name of the database to be attached to the server. The name must be unique. dbname is sysname, with a default of NULL.

[@filename1 =] 'filename_n'

Is the physical name, including path, of a database file. filename_n is nvarchar(260), with a default of NULL. There can be up to 16 file names specified. The parameter names start at @filename1 and increment to @filename16. The file name list must include at least the primary file, which contains the system tables that point to other files in the database. The list must also include any files that were moved after the database was detached.

Return Code Values
0 (success) or 1 (failure)

Result Sets
None

Remarks
sp_attach_db should only be executed on databases that were previously detached from the database server using an explicit sp_detach_db operation. If more than 16 files must be specified, use CREATE DATABASE with the FOR ATTACH clause.

If you attach a database to a server other than the server from which the database was detached, and the detached database was enabled for replication, you should run sp_removedbreplication to remove replication from the database.

Permissions
Only members of the sysadmin and dbcreator fixed server roles can execute this procedure.

Examples
This example attaches two files from pubs to the current server.

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'





به example آخری دقت کن

و برای detach کردن





sp_detach_db
Detaches a database from a server and, optionally, runs UPDATE STATISTICS on all tables before detaching.

Syntax
sp_detach_db [ @dbname = ] 'dbname'
[ , [ @skipchecks = ] 'skipchecks' ]

Arguments
[@dbname =] 'dbname'

Is the name of the database to be detached. dbname is sysname, with a default value of NULL.

[@skipchecks =] 'skipchecks'

skipchecks is nvarchar(10), with a default value of NULL. If true, UPDATE STATISTICS is skipped. If false, UPDATE STATISTICS is run. This option is useful for databases that are to be moved to read-only media.

Return Code Values
0 (success) or 1 (failure)

Result Sets
None

Remarks
The detached files remain and can be reattached using sp_attach_db or sp_attach_single_file_db. The files can also be moved to another server and attached.

Permissions
Only members of the sysadmin fixed server role can execute sp_detach_db.

Examples
This example detaches the pubs database with skipchecks set to true.

EXEC sp_detach_db 'pubs', 'true'



باز هم یه example آخری دقت کن

البته برای استفاده از اینها توی برنامه اصلیت باید به یک از دیتا بیس های خود sql وصل بشی که معمولا master را انتخاب میکنن

اگکه نتونستی تا یه نمونه برنامه برایت بذارم

اَرژنگ
دوشنبه 28 خرداد 1386, 16:01 عصر
منظورشون اینه که آیا همونطور که برای اجرا شدن برنامه های دات نت نیاز به دات نت فریم ورک هست آیا برای بخش sql آن هم نیاز یه نصب sql server روی ماشینی که قرار برنامه روش اجرا بشه نصب بشه جناب آرژنگ خان حرفه ای و برنامه نویس لایه ای

شما که یه چنین سوال ساده ای را متوجه نمیشی دلیل نداره که در تاپیک http://www.barnamenevis.org/forum/showthread.php?p=354612#post354612 اینقدر به برنامه نویسی و تئوری خودت خصوصا در مورد لایه نویسی کلاس بذاری
اگه یه برنامه کوچولو که توش با دیتا بیس کار میکرده نوشته بودی مطمونا سوال دوست عزیزمون را متوجه میشدی
شایدم تا الان برای استفاده از دیتا بیست کل sql server را یه جا یا query anylizer و ... نصب می کردی و لی از امروز به بعد نیاز نیست نصب کنی
در زیر توضیح دادم


MSDE??
مگر هنوز ازش استفاده میشه، تا جایی که یادمه این کهنه شد و از مایکروسافت دیگر ازش استفاده نمیکنه.
از اینکه در مورد تئوری لایه نویسی گفتم ، ببخشید، معلوم هست که ندانسته حرف زدم.

پس به این روش میشه از داتابیس اس کیو ال استفاده کرد بدانه داشتنه اس کیو ال داتابیس؟

benyamin_pc
دوشنبه 28 خرداد 1386, 16:05 عصر
آقا اگه Sample بذاری ممنون میشیم
این کارو انجام بدیم باز باید msde نصب شه؟اون فایل بانک میاد به برنامه اصافه میشه؟یعنی منظورم اینه که embed میشه یا لینک؟
یکم بیشتر توضیح بدین ممنون میشم

Alireza_Salehi
دوشنبه 28 خرداد 1386, 16:32 عصر
منظورشون اینه که آیا همونطور که برای اجرا شدن برنامه های دات نت نیاز به دات نت فریم ورک هست آیا برای بخش sql آن هم نیاز یه نصب sql server روی ماشینی که قرار برنامه روش اجرا بشه نصب بشه جناب آرژنگ خان حرفه ای و برنامه نویس لایه ای

شما که یه چنین سوال ساده ای را متوجه نمیشی دلیل نداره که در تاپیک http://www.barnamenevis.org/forum/showthread.php?p=354612#post354612 اینقدر به برنامه نویسی و تئوری خودت خصوصا در مورد لایه نویسی کلاس بذاری
اگه یه برنامه کوچولو که توش با دیتا بیس کار میکرده نوشته بودی مطمونا سوال دوست عزیزمون را متوجه میشدی
شایدم تا الان برای استفاده از دیتا بیست کل sql server را یه جا یا query anylizer و ... نصب می کردی و لی از امروز به بعد نیاز نیست نصب کنی
در زیر توضیح دادم


و اما جواب دوستمون
نه نیازی نیست که کل sql server را نصب کنید فقط کافیه msde مخفف (microsoft desktop engine ) که معمولا درون خود سی دی sql server هست را نصب کنید
البته بایستی برای attach کردن دیتا بیس هاتون کد نویسی کنید

برا این عمل هم در books online دنبال sp_attach_db و sp_dettach_db باشین

store procedure اولی برای attach کردن و دومی برای detachکردن دیتا بیس ها هستند
فکر کنم بقیش را خودتون متوجه بسین

البته نیازی نیست که بگردین من الان کد و توضیحاتش را که در خود book online هست را میذارم

برای attach کردن ان را بخون

.....
باز هم یه example آخری دقت کن

البته برای استفاده از اینها توی برنامه اصلیت باید به یک از دیتا بیس های خود sql وصل بشی که معمولا master را انتخاب میکنن

اگکه نتونستی تا یه نمونه برنامه برایت بذارم

اولا کاملا واضح است که MSDE بسیاری از امکانات SQL Server (حجم دیتابیس ، کارایی و ...) را ندارد و تنها به درد برنامه های کوچک می خورد و ثانیا در ویندوز ویستا پشتیبانی نمی شودو ه جای آن باید از SQL Server 2005 Express استفاده کنید!

در ضمن نصب اتوماتیک SQL Server (هر نسخه ای که باشه) اصلا کار سختی نیست و میشه اون رو با Setup برنامه یکی کرد.

choobin84
دوشنبه 28 خرداد 1386, 17:34 عصر
در ضمن نصب اتوماتیک SQL Server (هر نسخه ای که باشه) اصلا کار سختی نیست و میشه اون رو با Setup برنامه یکی کرد.

فکر کنید که یه کاربر مبتدی بخاد sql server رو نصب کنه....!!!؟

بعدش هم برنامه هایی که تاحالا نوشته می شدند با یه نصب خیلی راحت ، از برنامه به راحتی استفاده می کردند و دردسر sql و .net framwork و.. رو نداشتند ، حالا بیاییم و بگیم ، کاربر محترم اگر میخاهید از برنامه خیلی خوب ما استفاده کنید ، اول این کار بعد اون یکی کار رو انجام بده،حالا این یکی رو هم انجام بده تا برنامه براتون کار کنه.
در ضمن اگر زحمت attach ‌کردن و پشتیبان گیری رو هم گردن کاربر محترم بیاندازیم، نور علی نور می شود)-:

مطمئنا مشتری بی خیال برنامه خیلی خوب شما خواهد شد.

نمی دونم مایکروسافت فکر این دردسر های برنامه نویس رو کرده یا نه؟ شاید هم عمدا این دردسر رو براش گذاشته، تا برنامه ها به وابسته باشند و برای پیدا کردن هرکدومشون ، باید پول خرج کرد.(الحمدلله ما از این پول خرج کردنا ، فعلا درامانیم.)
البته الان توی پاسخ شما ، نصب اتوماتیک sql رو دیدم، چطوری؟

benyamin_pc
دوشنبه 28 خرداد 1386, 18:22 عصر
آقا اگه Sample بذاری ممنون میشیم
این کارو انجام بدیم باز باید msde نصب شه؟اون فایل بانک میاد به برنامه اصافه میشه؟یعنی منظورم اینه که embed میشه یا لینک؟
یکم بیشتر توضیح بدین ممنون میشم
اگه میشه حالا خوب و بد بودنش رو نادیده بگیرین و یکی در مورد این موارد یکم من رو راهنمایی کنه
البته یه سوال که فکر کنم مسخره باشه :لبخند: با ویژوال سی پلاس پلاس مثلا" اگه یه برنامه که به Sql Server متصل بنویسیم دیگه نیاز به نصب Sql server رو کامپیوتر کاربر نیست؟یا مثلا" با دلفی یا وی بی؟

Alireza_Salehi
دوشنبه 28 خرداد 1386, 18:34 عصر
میگم چطوره خود MS Visual Studio.net 2005 را هم به جای دات نت فریم ورک نصب کنیم
هم امکاناتش بیشتره هم ......... نه ؟
یا اصلا یه راه بهتر چطوره سورس برنامه را بدیم به کاربر بره حال کنه و خوش باشه
اولا : هر چیزی را برای کاری ساخته اند!
به نظر من با توجه به پشتیبانی نشدن MSDE در ویستا دیگه نباید ازش استفاده کرد. انتخاب بهتری به نام SQL Server 2005 Express با امکانات بیشتر وجود داره.

در صورتی که امکانات موجود در MSDE نسبت به نیازهای پروژه جوابگو باشد اشکالی در استفاده از آن وجود ندارد.

در ضمن پیشنهاد می کنم به جای جبهه گیری و نوشتن مطالب بیهوده فقط با بیان دلایل فنی و امکانات هر مورد استفاده یا عدم استفاده از آن را شرح بدید!




فکر کنید که یه کاربر مبتدی بخاد sql server رو نصب کنه....!!!؟

بعدش هم برنامه هایی که تاحالا نوشته می شدند با یه نصب خیلی راحت ، از برنامه به راحتی استفاده می کردند و دردسر sql و .net framwork و.. رو نداشتند ، حالا بیاییم و بگیم ، کاربر محترم اگر میخاهید از برنامه خیلی خوب ما استفاده کنید ، اول این کار بعد اون یکی کار رو انجام بده،حالا این یکی رو هم انجام بده تا برنامه براتون کار کنه.
در ضمن اگر زحمت attach ‌کردن و پشتیبان گیری رو هم گردن کاربر محترم بیاندازیم، نور علی نور می شود)-:
مطمئنا مشتری بی خیال برنامه خیلی خوب شما خواهد شد.
اولا هیچ یک از این مواردی که میگید مشکل حساب نمی شوند و باعث فروش نرفتن برنامه نمی شوند! (معمولا وقتی برنامه نویسی تازه با دات نت آشنا میشه از این جور مشکلات پیدا میکنه)
تمام این موارد به صورت اتوماتیک به همراه برنامه Setup نصب می شوند.

ثانیا Access در پروژه های کوچک و متوسط خیلی راحت جوابگوست و نیازی به SQL Server نیست.
در ضمن SQL Server امکاناتی دارد که به زحماتش می ارزد ، هر چند به نظر من زحمتی نداره! یک بار که یاد بگیرید چطور نصبش کنید دیگه مشکلی نخواهید داشت.

فلسفه وجودی SQL Server و کاربرد این دو کاملا جداست بنابراین ملزومات هر کدام فرق می کند.



نمی دونم مایکروسافت فکر این دردسر های برنامه نویس رو کرده یا نه؟ شاید هم عمدا این دردسر رو براش گذاشته، تا برنامه ها به وابسته باشند و برای پیدا کردن هرکدومشون ، باید پول خرج کرد.(الحمدلله ما از این پول خرج کردنا ، فعلا درامانیم.)
البته الان توی پاسخ شما ، نصب اتوماتیک sql رو دیدم، چطوری؟

کمی بیشتر مطالعه کنید!

hdv212
دوشنبه 28 خرداد 1386, 23:44 عصر
اخیرا مایکروسافت نسخه ی جدیدی از sql server ارائه کرده به نام SQL Server 2005 Compact Edition که هر دو قابلیت express edition و mobile edition رو داره، نکته ی قابل توجه اینکه pc رو هم پشتیبانی میکنه، اگه مشکل نصب sql خیلی برات مهمه میتونی روی این سیستم کار کنی که حجم کمی داره و میتونی با برنامه ت ارائه بدی، ولی توجه کن که فقط روی یه سیستم اجرا میشه، یادم میاد یکی دوماه پیش میخواستم روش کار کنم خیلی درد سر داشت از جمله اینکه باید sp1 روی visual studio 2005 خودت نصب باشه، برای اطلاعات بیشتر به این لینک برو :
http://www.microsoft.com/sql/editions/compact/default.mspx

choobin84
سه شنبه 29 خرداد 1386, 06:14 صبح
به نظر من با توجه به پشتیبانی نشدن MSDE در ویستا دیگه نباید ازش استفاده کرد.


به نظر شما با آمدن ویژوال استودیو 2003 ، استفاده از وی بی 6 قطع شد؟
یا با آمدن ویژوال استودیو 2005 ، کسی نباید از 2003 استفاده کند؟
یا همین که ویستا به بازار آمد ، از ایکس پی دست بکشیم؟ فکر میکنید ادارات زیر بار خرید اون میرن؟ اداراتی که برخی از کارمندهایشان حتی ویندوز بلد نیستند؟
در ضمن ویستا امکانات زیادی میخاد که بتونه نصب بشه؟ مثلا اولین چیزی که از نظر سخت افزاری باید برای ویستا تغییر داده بشه، ram رو باید به 512 ارتقا داد.
اداره ای که تمام کامپیوتر هایش با ram ، از نوع 256 یا کمتر استفاده می کنند ، چقدر باید هزینه برای ازتقای سخت افزاری بدهد که می خواهد روی آن ویستا نصب کند.
(اگر از مواردی چون یادگیری نصب ویستا ، و یادگیری کار کدن با اون بگذریم.)
توی ایران خرید این اقلام به راحتی امکان پذیره اما فکر کنید که اگر قانون کپی رایت الزامی بشه، باید قدیمی ها رو دور انداخت و هر وقت مایکروسافت یه چیزی داد بیرون خیلی زود از قدیمی ها دست بکشیم و سراغ ویستا و امثال اون رو بگیریم.



تمام این موارد به صورت اتوماتیک به همراه برنامه Setup نصب می شوند.


آیا ویژوال استودیو این امکان را برای برنامه نویس فراهم کرده است؟



ثانیا Access در پروژه های کوچک و متوسط خیلی راحت جوابگوست و نیازی به SQL Server نیست.

اون وقت همون نرم افزاری که با اکسس نوشته شده و با اس کیو ال نیست رو نصف قیمت هم نمی خرند.
بعضی مردم عقلشون به چشمشونه.


هر چند به نظر من زحمتی نداره! یک بار که یاد بگیرید چطور نصبش کنید دیگه مشکلی نخواهید داشت.

مشکل که حتما داره، نصبش برای من و شما و دیگران راحته،برای یکی که حتی بلد نیست احتمالا فاجعه است.توی ادارات معمولا کارمندها از این دسته اند.


کمی بیشتر مطالعه کنید!

متشکرم. چشم.

once4ever
سه شنبه 29 خرداد 1386, 08:25 صبح
همونطور که برای دات نت فریم ورک دو نمونه نصب وجود داره - یکی برای برنامه نویسها sdk و یکی برای اجرا شدن سیستمهای تحت دات نت- برای sql server هم همچین حالتی وجود داره و مطمئن باشید مایکروسافت خیلی بهتر به رفع این مشکلات میپردازه ;)
اما تفاوت اینها در اینه که چون توانایی sql server در بانک اطلاعاتی و کدهای مربوط به اونه، پس نسخه کاربردیش با نسخه developer تفاوت چندانی نداره
درضمن اگه حجم اطلاعات و کاری که با رکوردها انجام میشه زیاد نبود، دلیلی نداره از sql server استفاده کنید!
اما اگه حجم بالا بود اونوقته که اون اداره یا سازمان برنامه شمارو با قیمت بیشتر و دردسر (اگه بیشتر باشه! ) حاظر بخره تا اینکه 1ساعت صبر کنه یه فاکتورش ثبت بشه.
منم دوست دارم که از این به بعد دوستان راجب انواع مختلف نصب sql server صحبت کنند

Alireza_Salehi
سه شنبه 29 خرداد 1386, 09:08 صبح
به نظر شما با آمدن ویژوال استودیو 2003 ، استفاده از وی بی 6 قطع شد؟
یا با آمدن ویژوال استودیو 2005 ، کسی نباید از 2003 استفاده کند؟
یا همین که ویستا به بازار آمد ، از ایکس پی دست بکشیم؟ فکر میکنید ادارات زیر بار خرید اون میرن؟ اداراتی که برخی از کارمندهایشان حتی ویندوز بلد نیستند؟
در ضمن ویستا امکانات زیادی میخاد که بتونه نصب بشه؟ مثلا اولین چیزی که از نظر سخت افزاری باید برای ویستا تغییر داده بشه، ram رو باید به 512 ارتقا داد.
اداره ای که تمام کامپیوتر هایش با ram ، از نوع 256 یا کمتر استفاده می کنند ، چقدر باید هزینه برای ازتقای سخت افزاری بدهد که می خواهد روی آن ویستا نصب کند.
(اگر از مواردی چون یادگیری نصب ویستا ، و یادگیری کار کدن با اون بگذریم.)
توی ایران خرید این اقلام به راحتی امکان پذیره اما فکر کنید که اگر قانون کپی رایت الزامی بشه، باید قدیمی ها رو دور انداخت و هر وقت مایکروسافت یه چیزی داد بیرون خیلی زود از قدیمی ها دست بکشیم و سراغ ویستا و امثال اون رو بگیریم.

بنده به این مسائل واقفم فقط از لحاظ سازگاری برنامه با سیستم عامل های مختلف گفتم!
http://www.microsoft.com/sql/editions/express/sysreqs.mspx
http://www.microsoft.com/sql/prodinfo/previousversions/msde/sysreqs.mspx



آیا ویژوال استودیو این امکان را برای برنامه نویس فراهم کرده است؟

بعضی از نسخه هاش مثل Express رو بله آماده داره ، ولی بقیش هم قابل انجام است. در ضمن معمولا از برنامه های دیگری مثل InstallShield استفاده میشه تا Setup project های ویژوال استودیو.



اون وقت همون نرم افزاری که با اکسس نوشته شده و با اس کیو ال نیست رو نصف قیمت هم نمی خرند.

حتما می دونید در همه جای جهان وقتی نرم افزاری می نویسند ورژن های متفاوت با امکانات متفاوتی ارائه می کنند که قیمت هاشون به طور معنی داری فرق میکنه!
وقتی ملت عادت کردن که همیشه فول ورژن یک چیز رو با قیمت 1000 تومان بخرند دیگه توضیح تفاوت Access و SQL Server آب در هاون کوبیدن است و بس !


مشکل که حتما داره، نصبش برای من و شما و دیگران راحته،برای یکی که حتی بلد نیست احتمالا فاجعه است.توی ادارات معمولا کارمندها از این دسته اند.

کسی که این کار ها رو بلد نباشه یا دنبال یاد گرفنش هم نره بهتره برنامه نویسی رو بذاره کنار.
برای مشتری محصول هم در صورت وجود یک سیستم نصب اتوماتیک یا یک راهنمای جامع و بدون نقص برای نصب هیچ مشکلی وجود نخواهد داشت.

موفق باشید.

choobin84
سه شنبه 29 خرداد 1386, 20:50 عصر
بنده به این مسائل واقفم فقط از لحاظ سازگاری برنامه با سیستم عامل های مختلف گفتم!
http://www.microsoft.com/sql/editions/express/sysreqs.mspx
http://www.microsoft.com/sql/prodinfo/previousversions/msde/sysreqs.mspx


بعضی از نسخه هاش مثل Express رو بله آماده داره ، ولی بقیش هم قابل انجام است. در ضمن معمولا از برنامه های دیگری مثل InstallShield استفاده میشه تا Setup project های ویژوال استودیو.


حتما می دونید در همه جای جهان وقتی نرم افزاری می نویسند ورژن های متفاوت با امکانات متفاوتی ارائه می کنند که قیمت هاشون به طور معنی داری فرق میکنه!
وقتی ملت عادت کردن که همیشه فول ورژن یک چیز رو با قیمت 1000 تومان بخرند دیگه توضیح تفاوت Access و SQL Server آب در هاون کوبیدن است و بس !


کسی که این کار ها رو بلد نباشه یا دنبال یاد گرفنش هم نره بهتره برنامه نویسی رو بذاره کنار.
برای مشتری محصول هم در صورت وجود یک سیستم نصب اتوماتیک یا یک راهنمای جامع و بدون نقص برای نصب هیچ مشکلی وجود نخواهد داشت.

موفق باشید.

من هم همینو گفتم...
ممنون

مهدی رحیم زاده
یک شنبه 28 مرداد 1386, 05:56 صبح
سلام
می خواستم بدونم که چطوری می تونم با یک برنامه بانک رو به SQL Server ، (البته با کد نویسی) Attach کنم ؟؟؟

MH2538
یک شنبه 28 مرداد 1386, 05:59 صبح
سلام
در این مورد زیاد بحث شده است.
جستجو کن

mr_mtc
یک شنبه 28 مرداد 1386, 08:35 صبح
Attach رو که بعید میدونم !!!
ولی شما با کدنویسی میتونی بانک و جداولت رو تو خود برنامه ایجاد کنی

MH2538
یک شنبه 28 مرداد 1386, 09:08 صبح
Attach رو که بعید میدونم !!!
ولی شما با کدنویسی میتونی بانک و جداولت رو تو خود برنامه ایجاد کنی

هیچ وقت با این قاطعیت نگید نمی شه!
یه جستجو تو مطالبی که خود من فرستادم بکنید ،‌یه نمونه برنامه هم فرستادم

leilav_1984
یک شنبه 28 مرداد 1386, 09:54 صبح
Script ش رو از خود SQL Server2005 بردارید و اونو تو برنامه اجرا کنید

hdv212
یک شنبه 28 مرداد 1386, 12:01 عصر
و همچنین میتونی از این Stored Procedured استفاده کنی که سه تا پارامتر هم میگیره :
sp_attach_db
نمونه اش هم اینجاست :

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

مهدی رحیم زاده
یک شنبه 28 مرداد 1386, 17:55 عصر
میشه یه نمونه برنامه بزارید ، یا بیشتر توضیح بدین ...

hdv212
یک شنبه 28 مرداد 1386, 20:54 عصر
نمونه برنامه ی چیو بذارم، یه Sp ساده س که سه تا پارامتر باید بهش پاس کنی، نام دیتابیست و آدرس دو تا فایل دیتابیست.

mahsa_999
سه شنبه 17 مهر 1386, 05:16 صبح
سلام من یه برنامه csharp نوشتم که توش از sqlserver DB استفاده کردم . حالا نمی دونم چطوری باید database رو با استفاده از setup ایجاد کنم. البته نمی خوام مجبور بشم که sqlserver management studio رو روی کامپیوتر طرف نصب کنم. (توضیح: توی برنامه setup که ایجاد کردم sqlserver رو نصب می کنه اما خود db رو نمی دونم چطوری انتقال بدم)

hdv212
سه شنبه 17 مهر 1386, 07:30 صبح
به چند حالت میتونی دیتابیس مورد نظرتو در کامپیوتر مقصد بارگذاری کنی، فعلا دوتاشو حضور ذهن دارم:
1. ایجاد script از دیتابیست
2. Detach کردن دیتابیس و Attach کردن اون در سیستم مقصد.

در حالت اول، در management studio بایستی روی دیتابیست راست کلیک کنی و از منوی ظاهر شده generate script رو بزنی و مراحل کار رو اداه بدی تا از کل دیتابیست و آبجکتهایی که انتخاب کردی یا script بسازه و اون اسکریپت رو میتونی در سیستم مقصد با دستورات معمولی sql در داخل برنامه ات run کنی(البته این نکته خیلی مهمه که اطلاعات شما انتقال پیدا نمیکنه بلکه فقط اسکریپت یه دیتابیس خام ایجاد میشه که این به مراتب بهتر و منطقی تره)

در حالت دوم بایستی دیتابیست رو از سیستم خودت Detach کنی و روی سیستم طرف attach کنی که باز میتونی با دستورات sql در برنامه ات ازش استفاده کنی، برای اطلاعات بیشتر به بخش sql server مراجعه کنید.

mahsa_999
سه شنبه 17 مهر 1386, 08:36 صبح
در واقع می خوام برنامه نصبم این کارو انجام بده.

hassan razavi
سه شنبه 17 مهر 1386, 08:42 صبح
شما میتونید فایلهای بانک رو در مسیری که میخواهید با برنامه نصب انتقال بدید ، سپس همیشه در اول برنامه پک کنید اگه بانک Attach شده بود که هیچ و اگر نبود از همون مسیری که برنامه نصب فایل رو گذاشته ، فایل را Attach کنید (توسط Store Procedure)

mehdisiavashian
سه شنبه 17 مهر 1386, 08:44 صبح
کدی که کار attach و deattach دیتا بیس رو انجام می ده چیه؟ با تشکر

hassan razavi
سه شنبه 17 مهر 1386, 08:54 صبح
از Stroe Procedure استفاده میشه. یه Search در تالار SQL Server همین سایت خودمون بزنید کلی لینک پیدا میکنید

hdv212
سه شنبه 17 مهر 1386, 09:05 صبح
کدی که کار attach و deattach دیتا بیس رو انجام می ده چیه؟
برای Attach کردن :

CREATE DATABASE [C:\DOCUMENTS AND SETTINGS\HAMED\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\TREEVIEW1\TREEVIEW1\BIN\DEBUG\DATABA SE1.MDF]
ON
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1.mdf' ),
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1_log.ldf')
FOR ATTACH

و برای Detach کردن :

EXEC master.dbo.sp_detach_db @dbname = N'C:\DOCUMENTS AND SETTINGS\HAMED\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\TREEVIEW1\TREEVIEW1\BIN\DEBUG\DATABA SE1.MDF', @keepfulltextindexfile=N'true'
فقط آدرس های خودتو بهش بده.


در واقع می خوام برنامه نصبم این کارو انجام بده
ایجاد اسکریپت بهترین راه حله، میتونید در app.config برنامه تون یه متغیر ایجاد کنید و وقتی برنامه تون رو برای اولین بار روی سیستم طرف اجرا میکنید مقدار اونو چک کنید (مثلا مقدار پیشفرضش false هست یعنی بانک هنوز ایجاد نشده)، بعد اگه false بود اسکریپت مورد نظر رو run کنید و مقدار اون رو true کنید، برای دفعه های بعد چون مقدارش true هست یگه بانکی ساخته نمیشه، این بهترین راه حله.

mahsa_999
سه شنبه 17 مهر 1386, 09:17 صبح
ممنون از راهنمایی های همه


ایجاد اسکریپت بهترین راه حله، میتونید در app.config برنامه تون یه متغیر ایجاد کنید و وقتی برنامه تون رو برای اولین بار روی سیستم طرف اجرا میکنید مقدار اونو چک کنید (مثلا مقدار پیشفرضش false هست یعنی بانک هنوز ایجاد نشده)، بعد اگه false بود اسکریپت مورد نظر رو run کنید و مقدار اون رو true کنید، برای دفعه های بعد چون مقدارش true هست یگه بانکی ساخته نمیشه، این بهترین راه حله.


می شه در این مورد بیشتر توضیح بدین؟

Mrs.Net
شنبه 26 آبان 1386, 10:25 صبح
من سوالمو چند روز تو بخش sql server پرسیدم اما کسی جواب نداد بهم
لطفا اینجا جواب بدید چون مربوط به پروژه هست
لطفا یکی راهنماییم کنه. آیا این کارم درست هست:
یک بانک با sql server درست میکنم با یک یوزر و پسورد. بعد اون فایلو detach میکنم و فایلشو برمیدارم (mdf). حالا یک فایل دارم که:
1. در هردستگاهی با هر حالت sql server که داره فقط با اون یوزر و پسورد قابل دیدن و کار کردن هست
2. این تنها راه درست ایجاد یک فایل mdf هست
3. برای نصب کردن سیستم فقط کافیه که sqlserver express نصب باشه و یوزر پسورد ادمینش مهم نیست.
4. هیچکس به ساختار فایلم نمیتونه دسترسی داشته باشه جز با یوزر پسوردم

آیا این 4مورد درست هست و اگه توضیح میخواد بهم بگید
خیلی ممنون

hdv212
شنبه 26 آبان 1386, 11:17 صبح
خب من منظرتو از این کار نمیدونم ولی میتونی از راههای زیر هم دیتابیست رو Publish کنی :
1. از دیتابیست اسکریپت بسازی یعنی روی دیتابیست right-click کن و Generate Script رو بزن.
2. میتونی از دیتابیست یه Backup بگیری و در مقصد با دستور restore دیتابیست رو بسازی.
ولی راه اولی قشنگ تر و فنی تره.

Mrs.Net
یک شنبه 27 آبان 1386, 10:03 صبح
1. از دیتابیست اسکریپت بسازی یعنی روی دیتابیست right-click کن و Generate Script رو بزن.
یعنی داخل اسکریپت میشه یوزر و پسورد مشخص کرد؟
سوال من خیلی ساده است احتمالا بد پرسیدم!
میخوام یک بانک sql درست کنم و در کنار exe برنامه باشه (به سرور attach نشه) همین

MOHSEN_D_62
پنج شنبه 15 آذر 1386, 18:33 عصر
ببخشید شما میفرمائید که MSDE تو ویستا ساپورت نمیشه ؟ پس ببخشید ما نرم افزار خودمون رو (هلو) چه جوری داریم تو ویستا نصب میکنیم میدیم دست مردم ؟ آقا تو رو خدا از این شوخا ها نکنید . مایکروسافت هم خودش اگه گفته باشه که نمیشه ، با ید بگم (فعلاً که شده )

choobin84
پنج شنبه 15 آذر 1386, 21:10 عصر
ببخشید شما میفرمائید که MSDE تو ویستا ساپورت نمیشه ؟ پس ببخشید ما نرم افزار خودمون رو (هلو) چه جوری داریم تو ویستا نصب میکنیم میدیم دست مردم ؟ آقا تو رو خدا از این شوخا ها نکنید . مایکروسافت هم خودش اگه گفته باشه که نمیشه ، با ید بگم (فعلاً که شده )
ویندوز ویستا پیش فرض برخی موارد از جمله دات نت فرم ورک رو داره.
نرم افزار "هلو" هم نیازی به اینکه از قبل SQLServer‌نصب شده باشه نداره. چون در ستاپ خودش تمام کارهای لازم حتی Attach کردن رو هم انجام میده.
راستی، کی شوخی کرده؟

az_farzaneh
شنبه 01 دی 1386, 12:28 عصر
منظورشون اینه که آیا همونطور که برای اجرا شدن برنامه های دات نت نیاز به دات نت فریم ورک هست آیا برای بخش sql آن هم نیاز یه نصب sql server روی ماشینی که قرار برنامه روش اجرا بشه نصب بشه

نه نیازی نیست که کل sql server را نصب کنید فقط کافیه msde مخفف (microsoft desktop engine ) که معمولا درون خود سی دی sql server هست را نصب کنید
البته بایستی برای attach کردن دیتا بیس هاتون کد نویسی کنید

برا این عمل هم در books online دنبال sp_attach_db و sp_dettach_db باشین

store procedure اولی برای attach کردن و دومی برای detachکردن دیتا بیس ها هستند
فکر کنم بقیش را خودتون متوجه بسین

البته نیازی نیست که بگردین من الان کد و توضیحاتش را که در خود book online هست را میذارم

برای attach کردن ان را بخون









sp_attach_db
Attaches a database to a server.

Syntax
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]

Arguments
[@dbname =] 'dbname'

Is the name of the database to be attached to the server. The name must be unique. dbname is sysname, with a default of NULL.

[@filename1 =] 'filename_n'

Is the physical name, including path, of a database file. filename_n is nvarchar(260), with a default of NULL. There can be up to 16 file names specified. The parameter names start at @filename1 and increment to @filename16. The file name list must include at least the primary file, which contains the system tables that point to other files in the database. The list must also include any files that were moved after the database was detached.

Return Code Values
0 (success) or 1 (failure)

Result Sets
None

Remarks
sp_attach_db should only be executed on databases that were previously detached from the database server using an explicit sp_detach_db operation. If more than 16 files must be specified, use CREATE DATABASE with the FOR ATTACH clause.

If you attach a database to a server other than the server from which the database was detached, and the detached database was enabled for replication, you should run sp_removedbreplication to remove replication from the database.

Permissions
Only members of the sysadmin and dbcreator fixed server roles can execute this procedure.

Examples
This example attaches two files from pubs to the current server.

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'





به example آخری دقت کن

و برای detach کردن





sp_detach_db
Detaches a database from a server and, optionally, runs UPDATE STATISTICS on all tables before detaching.

Syntax
sp_detach_db [ @dbname = ] 'dbname'
[ , [ @skipchecks = ] 'skipchecks' ]

Arguments
[@dbname =] 'dbname'

Is the name of the database to be detached. dbname is sysname, with a default value of NULL.

[@skipchecks =] 'skipchecks'

skipchecks is nvarchar(10), with a default value of NULL. If true, UPDATE STATISTICS is skipped. If false, UPDATE STATISTICS is run. This option is useful for databases that are to be moved to read-only media.

Return Code Values
0 (success) or 1 (failure)

Result Sets
None

Remarks
The detached files remain and can be reattached using sp_attach_db or sp_attach_single_file_db. The files can also be moved to another server and attached.

Permissions
Only members of the sysadmin fixed server role can execute sp_detach_db.

Examples
This example detaches the pubs database with skipchecks set to true.

EXEC sp_detach_db 'pubs', 'true'



باز هم یه example آخری دقت کن

البته برای استفاده از اینها توی برنامه اصلیت باید به یک از دیتا بیس های خود sql وصل بشی که معمولا master را انتخاب میکنن

اگکه نتونستی تا یه نمونه برنامه برایت بذارم
میشه در مورد استفاده از این کد در برنامه بیشتر توضیح داده بشه ؟

sinpin
شنبه 01 دی 1386, 13:11 عصر
میشه در مورد استفاده از این کد در برنامه بیشتر توضیح داده بشه ؟

یک فایل اجرایی کوچیک درست کنید که sp_attach_db رو با پارامترهای دلخواه شما call کنه.

اگه جستجو میکردید هزاران مورد میدیدید:
http://barnamenevis.org/forum/showthread.php?t=65019
http://barnamenevis.org/forum/showthread.php?t=76342
http://barnamenevis.org/forum/showthread.php?t=65627
http://barnamenevis.org/forum/showthread.php?t=54185
http://barnamenevis.org/forum/showthread.php?t=17073
sp_attach_db رو جستجو کنید تو همین سایت...

alirzn
یک شنبه 09 دی 1386, 10:59 صبح
سلام:
شما چطور برنامه sql server رو نصب می کنید در setup برنامتون؟


ممنون از راهنمایی های همه


می شه در این مورد بیشتر توضیح بدین؟

shr6557
دوشنبه 10 دی 1386, 01:15 صبح
سلام
من یک برنامه می خوام بنویسم که به بانک اطلاعاتی sql sever وصل بشه آیا لازمه که در کامپیوتری که این برنامه قرار است اجرا بشه sql sever نصب شده باشه؟
در مورد دیگر بانک اطلاعاتی ها چطور مانند access ؟

hassan razavi
دوشنبه 10 دی 1386, 07:08 صبح
در مورد Access فقط نصب بودن Microdoft Jet OLE کافیه (که معمولا نصب هست) ولی در مورد SQL Server اگه از به سروری Connect میکنید ، نصب بودن SQL Server فقط بر روی سرور کافیه ، ولی اگه هر کامپیوتر بصورت مجزا برا خودش کار میکنه نصب بودن حداقل Client Tools لازمه.

rezaiy.ali
دوشنبه 10 دی 1386, 12:42 عصر
با سلام
اگر بانک را با Sql2000 طراحی کردی باید در کامپیوتر مقصد MSDE2000 را نصب کنی که در خود CD برنامه وجود دارد اما اگر با sql2005 طراحی کردی باید Sql Server Express Edition را نصب کنی که تقریبا 32 مگابایت است.
در ضمن باید روی سیستم مقصد .Net FramWork را هم نصب کنی
موفق باشید.

Pioneers
دوشنبه 10 دی 1386, 12:56 عصر
در تکمیل آخرین پست، باید با کمک یه Batch File، دیتابیس رو Attach کنید.

hassan razavi
دوشنبه 10 دی 1386, 13:00 عصر
می تونی از Store Procedure هم برای Attach کردن استفاده کنی. جستجو کنی تو همین سایت فراون توضیح دادند

Pioneers
دوشنبه 10 دی 1386, 13:06 عصر
Stored Procedure برای اجرا مگه نباید Attach باشه؟

بهنام بهمنی
دوشنبه 10 دی 1386, 13:38 عصر
احتمالا منظور این بوده که ابتدا به ,master وصل بشیم بعد یک sp به master اضافه کنیم و از طریق ان طریق db رو attach کنیم .
راحتر اینه که به master وصل شیم و بعد script مربوط به attache رو اجرا کنیمو

alirzn
دوشنبه 10 دی 1386, 14:42 عصر
کدوم table در master هست که اسم تمام databaseهای attach شده درونشه؟


می تونی از Store Procedure هم برای Attach کردن استفاده کنی. جستجو کنی تو همین سایت فراون توضیح دادند

hassan razavi
دوشنبه 10 دی 1386, 14:53 عصر
در دیتابیس master جدولی بنام sysdatabases هست که نام تمام BataBase های Attach شده رو داره. میتونید با یک Query یا Streprocedure بفهمید که Attach شده یا خیر

alirzn
دوشنبه 10 دی 1386, 15:23 عصر
سلام:
آقا اون store procedure واسه attach رو واسم میفرستید؟ممنون

در دیتابیس master جدولی بنام sysdatabases هست که نام تمام BataBase های Attach شده رو داره. میتونید با یک Query یا Streprocedure بفهمید که Attach شده یا خیر

MH2538
دوشنبه 10 دی 1386, 16:52 عصر
سلام
sp_attach_db
از استورپروسجرهای مربوط به master است.

rezaiy.ali
دوشنبه 10 دی 1386, 17:22 عصر
با سلام
دوستان گرامی شما می تونید ابتدا دیتابیس را در SqlServer ایجاد کنید و با برنامه به SqlServer متصل بشین و داده ردوبدل کنید.
بعد از اینکه پروژه تون تمام شد و می خواستید که برنامه را Publish کنید بانک را از SqlServer خودتون Detach کنید و فایل بانک را در خود پروژه add کنید و کانکشن استرینگ را تغییر دهید.
زمانی که Publish می کنید بانک در خود شاخه Bin قرار داده میشه.
در کامپیوتر مقصد دیگه نیازی به نصب برنامه SqlServer نیست و فقط کافی است که برنامه SqlServer Express Edition را نصب کنید. نیاز به Attach کردن نیست.
برنامه اجرا میشه.
موفق باشید

mahmood744
دوشنبه 10 دی 1386, 17:47 عصر
با سلام
دوستان گرامی شما می تونید ابتدا دیتابیس را در SqlServer ایجاد کنید و با برنامه به SqlServer متصل بشین و داده ردوبدل کنید.
بعد از اینکه پروژه تون تمام شد و می خواستید که برنامه را Publish کنید بانک را از SqlServer خودتون Detach کنید و فایل بانک را در خود پروژه add کنید و کانکشن استرینگ را تغییر دهید.
زمانی که Publish می کنید بانک در خود شاخه Bin قرار داده میشه.
در کامپیوتر مقصد دیگه نیازی به نصب برنامه SqlServer نیست و فقط کافی است که برنامه SqlServer Express Edition را نصب کنید. نیاز به Attach کردن نیست.
برنامه اجرا میشه.
موفق باشید

:تشویق:

دوست عزیز من با VB کار می کنم آیا می شود روش بالا را برای من به VB توضیح دهی
که چگونه یک بانک SQL را در یک سیستم دیگر بتوانم راه اندازی کنم (آن هم با برنامه نویسی نه به صورت دستی)
باتشکر از راهنمایتان ....

mahmood744
دوشنبه 10 دی 1386, 17:48 عصر
با سلام
دوستان گرامی شما می تونید ابتدا دیتابیس را در SqlServer ایجاد کنید و با برنامه به SqlServer متصل بشین و داده ردوبدل کنید.
بعد از اینکه پروژه تون تمام شد و می خواستید که برنامه را Publish کنید بانک را از SqlServer خودتون Detach کنید و فایل بانک را در خود پروژه add کنید و کانکشن استرینگ را تغییر دهید.
زمانی که Publish می کنید بانک در خود شاخه Bin قرار داده میشه.
در کامپیوتر مقصد دیگه نیازی به نصب برنامه SqlServer نیست و فقط کافی است که برنامه SqlServer Express Edition را نصب کنید. نیاز به Attach کردن نیست.
برنامه اجرا میشه.
موفق باشید
دوست عزیز من با VB کار می کنم آیا می شود روش بالا را برای من به VB توضیح دهی
که چگونه یک بانک SQL را در یک سیستم دیگر بتوانم راه اندازی کنم (آن هم با برنامه نویسی نه به صورت دستی)
باتشکر از راهنمایتان ....

rezaiy.ali
دوشنبه 10 دی 1386, 19:18 عصر
با سلام
این هم یه مثال
اگه برنامه را از شاخه \Sqlserver\Sqlserver\bin\Debug اجرا کنی برنامه بدون attach کردن برنامه اجرا میشه
موفق باشید

alirzn
دوشنبه 10 دی 1386, 19:29 عصر
آقا فایلی که گذاشتین ظاهرا مشکل داره. میشه دوباره بگذارید؟ممنون

با سلام
این هم یه مثال
اگه برنامه را از شاخه \Sqlserver\Sqlserver\bin\Debug اجرا کنی برنامه بدون attach کردن برنامه اجرا میشه
موفق باشید

rezaiy.ali
سه شنبه 11 دی 1386, 08:50 صبح
با سلام
من برنامه را چک کردم مشکلی نداشت
لطفا مشکلی که شما به ان برخوردید را بنویسید
متشکر

razavi_university
سه شنبه 11 دی 1386, 11:28 صبح
در connection String چه چیزی رو دقیقا باید تغییر بدیم

alirzn
سه شنبه 11 دی 1386, 12:52 عصر
این کارو در صورتی میشه انجام داد که از sql server2005 خود .net استفاده کرده باشیم. واسه sql 2000 این کار عملی نیست . درسته؟


با سلام
من برنامه را چک کردم مشکلی نداشت
لطفا مشکلی که شما به ان برخوردید را بنویسید
متشکر

rezaiy.ali
سه شنبه 11 دی 1386, 15:27 عصر
با سلام
با 2000 هم اینکار میشه انجام داد

alirzn
سه شنبه 11 دی 1386, 22:49 عصر
من نتونستم. میشه یکم دقیق تر بگید؟ من وقتی تو برنامه می خوام database رو add کنم.یک database خالی واسم می سازه . حالا چطور میتونم اون دو تا فایل mdf و ldf اصلیم که تو sql 2000 اتچ شده رو بهش نسبت بدم.؟

با سلام
با 2000 هم اینکار میشه انجام داد

hassan razavi
چهارشنبه 12 دی 1386, 07:50 صبح
با توجه به اینکه سوالات زیادی در پستهای پراکنده ای در چند روز اخیر پیرامون نحوه Attach کردن بانکهای SQL Server ، تصمیم به ایجاد یک پست جدید البته همراه با جواب گرفتم. و اما روش :

1- در بانک master یک Stroe Priocedure بنام sp_databases وجود دارد که نتیجه برگشتی آن نام تمام بانکهای Attach شده در SQL Server هست. با اجرای آن می تونید چک کنید که بانکتون در حال حاضر Attach شده یا خیر

2- در بانک master یک Store Procedure بنام sp_attach_db وجود دارد که وظیفه Attach کردن بانکهارو انجام میده. پارامتر اول آن @dbname هست که نام DB رو میگیره و پارامتر دوم @filename1 هست که مسیر فایل MDF مورد نظر جهت Attach رو میگیره و پارامتر سوم که باید بدید filename2@ هست که مسیر فایل ldf رو میگیره.

برای دقت بهتر میتونید خودتون این دو Store Procedure رو ویرایش کنید و ببینید که به چه ترتیبه.


3- برای Deattach کردن آن نیز از sp_detach_db موجود در بانک master استفاده کنید.

می تونید در فرم Login یا Splash برنامتون sp_databases را اجرا کنید و اگه نام بانک تون موجود نبود محله 2 رو انجام دهید.

alirzn
چهارشنبه 12 دی 1386, 08:14 صبح
مرسی از راهنماییت. آقا اون batch که واسه نصب sql server2000 گفتی رو من نتونستم پیدا کنم. شما نداریدش؟


با توجه به اینکه سوالات زیادی در پستهای پراکنده ای در چند روز اخیر پیرامون نحوه Attach کردن بانکهای SQL Server ، تصمیم به ایجاد یک پست جدید البته همراه با جواب گرفتم. و اما روش :

1- در بانک master یک Stroe Priocedure بنام sp_databases وجود دارد که نتیجه برگشتی آن نام تمام بانکهای Attach شده در SQL Server هست. با اجرای آن می تونید چک کنید که بانکتون در حال حاضر Attach شده یا خیر

2- در بانک master یک Store Procedure بنام sp_attach_db وجود دارد که وظیفه Attach کردن بانکهارو انجام میده. پارامتر اول آن @dbname هست که نام DB رو میگیره و پارامتر دوم @filename1 هست که مسیر فایل MDF مورد نظر جهت Attach رو میگیره و پارامتر سوم که باید بدید filename2@ هست که مسیر فایل ldf رو میگیره.

برای دقت بهتر میتونید خودتون این دو Store Procedure رو ویرایش کنید و ببینید که به چه ترتیبه.


3- برای Deattach کردن آن نیز از sp_detach_db موجود در بانک master استفاده کنید.

می تونید در فرم Login یا Splash برنامتون sp_databases را اجرا کنید و اگه نام بانک تون موجود نبود محله 2 رو انجام دهید.

rezaiy.ali
چهارشنبه 12 دی 1386, 10:19 صبح
با سلام
اول بانک را با Sql2000 بساز و برنامه را با sql2000 متصل کن بعد از این که برنامه نویسی برنامه تمام شد فایل از از sql دی تش کن و فایل بانک را در شاخه برنامه کپی کن و پروژه را با برنامه VS باز کن - در پنچره Solution Explorer فایل بانک به صورت یه شکلک سفید رنگ وجود داره روی اون شکلک رایت کلیک کن و گزینه Include in project را بزن-بعد کانکش را به بانک جدید تغییر بده
موفق باشید

setaresoheilIran
چهارشنبه 24 بهمن 1386, 23:05 عصر
خیلی خوب بود . تقریبا به جواب خیلی از سوالام رسیدم . ولی هنوز چند تا ابهام وجود داره:1- آیا sp هایی که گفتید حتما باید در برنامه اجرا بشن یا از توی محیط sqlserver2000 هم میشه؟2- چطور باید sp هایی رو که گفتید از تو برنامه اجرا کنم ؟ (در vb توضیح بدید. )3-چطور باید اونها رو در محیط sqlserver2000 اجرا کنم ؟4-اگر بخواهیم یه برنامه نصب مثلا با instalshield بسازیم ، چطور باید db برنامه رو به msde 2000اضافه (attach) کرد ؟تشکر میکنـیــــــــــــــــم!

m_h_2007
چهارشنبه 07 فروردین 1387, 22:03 عصر
در قسمتهای مختلف راجع به attache کردن با کدنویسی #c صحبت شده بود اما الگوریتم کلی این کار رو می خواستم
1-فایلهای mdf و ldf باید حتما در هارد طرق قرار بگیرد تا عملیات attache انجام شود درسته ؟
2-بهترین راه چیه برای این کار و کلا انتقال دیتابیس به سرور برای کاربرانی که می خواهنداز برنامه استفاده کنند

hdv212
پنج شنبه 08 فروردین 1387, 10:42 صبح
در قسمتهای مختلف راجع به attache کردن با کدنویسی #c صحبت شده بود اما الگوریتم کلی این کار رو می خواستم
اینم نمونه کدش :

CREATE DATABASE [C:\DOCUMENTS AND SETTINGS\HAMED\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\TREEVIEW1\TREEVIEW1\BIN\DEBUG\DATABA SE1.MDF]
ON
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1.mdf' ),
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1_log.ldf')
FOR ATTACH

1-فایلهای mdf و ldf باید حتما در هارد طرق قرار بگیرد تا عملیات attache انجام شود درسته ؟
بله حتما باید باشن.

2-بهترین راه چیه برای این کار و کلا انتقال دیتابیس به سرور برای کاربرانی که می خواهنداز برنامه استفاده کنند
میتونید اسکریپت دیتابیس رو Generate کنید، یا اگه توش داده هست، میتونید از اون Backup بگیرید و در جای دیگه Restore کنید.

samprp
سه شنبه 05 شهریور 1387, 21:33 عصر
در بانک master یک Stroe Priocedure بنام sp_databases وجود دارد که نتیجه برگشتی آن نام تمام بانکهای Attach شده در SQL Server هست. با اجرای آن می تونید چک کنید که بانکتون در حال حاضر Attach شده یا خیر
سلام
مطالب این تاپیک رو خوندم
یه سوال داشتم این استوریدپروس sp_databases رو انجام دادم کار می کرد .
ولی هر چی می خوام یه SELECT روش استفاده کنم نمی شه . یعنی به sp_databases خطا می ده :
(البته می خوام یه شرط رو هم اضافه کنم)
SELECT DATABASE_NAME FROM sp_databasesممنون

masoudmmd
پنج شنبه 19 دی 1387, 00:50 صبح
بزار ما هم یه کار خیر کنیم


SELECT *
FROM INFORMATION_SCHEMA.SCHEMATA where catalog_name like 'm%'
ORDER BY CATALOG_NAME

مسعود منصوری
شنبه 21 دی 1387, 12:04 عصر
با سلام
آقا من به وسيله كد نويسي بانكمو Attach ميكنم ولي موقعه اتصال به Login, User ها و اين مجوز ها گير ميده
بازم كه User, Loginها پاك ميكنمو رو ميسازم Error ميده ميگه اتصال ممكن نيست.
وقتي دستي Attachو Deattach ميكنم درست ميشه به نظرتون راه حل چيه ؟ آيا كدي هست كه دقيقا مثل Attach دستي عمل كنه ؟

يه سوال ديگه تنظيمات SQL رو چجوري ميشه با كد نويسي دست كاري كرد ؟( مثل Run,Stop و SQL & windows و .....)

مسعود منصوری
سه شنبه 24 دی 1387, 11:02 صبح
كسي نيست جواب بده !!!!!!!

razavi_university
سه شنبه 24 دی 1387, 19:11 عصر
هر دو سوال كه پرسيديد:
1- Attach بوسيله كد نويسي
2- Run و Stop كردن SQL بوسيله خط فرمان
قبلا در سايت مطرح شده‌‌اند لطفا جستجو (http://72.232.49.243/forum/search.php)كنيد

مسعود منصوری
پنج شنبه 26 دی 1387, 09:16 صبح
سلام
من بعد از جستجو سوالمو مطرح كردم
جواب هست ولي درست كار نميكنه لطفاً به سوال دقت كنيد.
(( آيا كدي هست كه دقيقا مثل Attach دستي عمل كنه ؟ ))
چون با كد و قتي attach ميكنم مجوز ها و Login ها به هم ميريزه

moferferi
پنج شنبه 26 دی 1387, 21:21 عصر
سلام
یه برنامه گذاشتم که عملیاتattach ,backup ,restore ,
انجام میده.
http://barnamenevis.org/forum/showthread.php?t=64210&page=21

ghuzebalaghuz
شنبه 15 فروردین 1388, 09:27 صبح
اینم نمونه کدش :

CREATE DATABASE [C:\DOCUMENTS AND SETTINGS\HAMED\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\TREEVIEW1\TREEVIEW1\BIN\DEBUG\DATABA SE1.MDF]
ON
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1.mdf' ),
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1_log.ldf')
FOR ATTACHبله حتما باید باشن.

میتونید اسکریپت دیتابیس رو Generate کنید، یا اگه توش داده هست، میتونید از اون Backup بگیرید و در جای دیگه Restore کنید.
سلام
خسته نباشید
اگه لطف کنید و کد deattach کردن رو هم بزارید ممنون میشم

ghuzebalaghuz
شنبه 15 فروردین 1388, 09:33 صبح
اینم نمونه کدش :

CREATE DATABASE [C:\DOCUMENTS AND SETTINGS\HAMED\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\TREEVIEW1\TREEVIEW1\BIN\DEBUG\DATABA SE1.MDF]
ON
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1.mdf' ),
( FILENAME = N'C:\Documents and Settings\Hamed\My Documents\Visual Studio 2005\Projects\TreeView1\TreeView1\bin\Debug\Databa se1_log.ldf')
FOR ATTACHبله حتما باید باشن.

میتونید اسکریپت دیتابیس رو Generate کنید، یا اگه توش داده هست، میتونید از اون Backup بگیرید و در جای دیگه Restore کنید.
سلام
خسته نباشید
اگه لطف کنید و کد deattach کردن رو هم بزارید ممنون میشم

mehranjoomla
دوشنبه 11 آبان 1388, 22:14 عصر
سلام اقا آخر چی شد برای ATACH چکار باید کرد

mehranjoomla
دوشنبه 11 آبان 1388, 22:16 عصر
کل کارهایی که باید انجام بدم چیه؟
آیا INSTALLSHIELD اینکار را نمیکند؟

pr1nce
دوشنبه 04 شهریور 1392, 11:49 صبح
سلام. آقایون من تازه کارمو تو حیطه ی برنامه نویسی شروع کردم. ی سوال دارم پس لطفا بطور ساده واسم توضیح بدین:
من میخوام ی برنامه بنویسم که تو حالت runtime بشه ی پایگاه داده رو ( هر نوعی که باشه sql - access - ... ) به برنامه متصل کنم، داده هاشو بخونم ی سری کارا روشون انجام بدم و برشون گردونم تو همون پایگاه. به من گفتن ی کامپوننت واسه اینکه هرنوع بانکی رو به برنامه وصل کنی هست. میشه لطفا منو راهنمایی کنین؟؟؟