شما میتونید فایلهای بانک رو در مسیری که میخواهید با برنامه نصب انتقال بدید ، سپس همیشه در اول برنامه پک کنید اگه بانک Attach شده بود که هیچ و اگر نبود از همون مسیری که برنامه نصب فایل رو گذاشته ، فایل را Attach کنید (توسط Store Procedure)
شما میتونید فایلهای بانک رو در مسیری که میخواهید با برنامه نصب انتقال بدید ، سپس همیشه در اول برنامه پک کنید اگه بانک Attach شده بود که هیچ و اگر نبود از همون مسیری که برنامه نصب فایل رو گذاشته ، فایل را Attach کنید (توسط Store Procedure)
کدی که کار attach و deattach دیتا بیس رو انجام می ده چیه؟ با تشکر
از Stroe Procedure استفاده میشه. یه Search در تالار SQL Server همین سایت خودمون بزنید کلی لینک پیدا میکنید
برای Attach کردن :کدی که کار attach و deattach دیتا بیس رو انجام می ده چیه؟
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 هست یگه بانکی ساخته نمیشه، این بهترین راه حله.در واقع می خوام برنامه نصبم این کارو انجام بده
ممنون از راهنمایی های همه
می شه در این مورد بیشتر توضیح بدین؟ایجاد اسکریپت بهترین راه حله، میتونید در app.config برنامه تون یه متغیر ایجاد کنید و وقتی برنامه تون رو برای اولین بار روی سیستم طرف اجرا میکنید مقدار اونو چک کنید (مثلا مقدار پیشفرضش false هست یعنی بانک هنوز ایجاد نشده)، بعد اگه false بود اسکریپت مورد نظر رو run کنید و مقدار اون رو true کنید، برای دفعه های بعد چون مقدارش true هست یگه بانکی ساخته نمیشه، این بهترین راه حله.
من سوالمو چند روز تو بخش sql server پرسیدم اما کسی جواب نداد بهم
لطفا اینجا جواب بدید چون مربوط به پروژه هست
لطفا یکی راهنماییم کنه. آیا این کارم درست هست:
یک بانک با sql server درست میکنم با یک یوزر و پسورد. بعد اون فایلو detach میکنم و فایلشو برمیدارم (mdf). حالا یک فایل دارم که:
1. در هردستگاهی با هر حالت sql server که داره فقط با اون یوزر و پسورد قابل دیدن و کار کردن هست
2. این تنها راه درست ایجاد یک فایل mdf هست
3. برای نصب کردن سیستم فقط کافیه که sqlserver express نصب باشه و یوزر پسورد ادمینش مهم نیست.
4. هیچکس به ساختار فایلم نمیتونه دسترسی داشته باشه جز با یوزر پسوردم
آیا این 4مورد درست هست و اگه توضیح میخواد بهم بگید
خیلی ممنون
خب من منظرتو از این کار نمیدونم ولی میتونی از راههای زیر هم دیتابیست رو Publish کنی :
1. از دیتابیست اسکریپت بسازی یعنی روی دیتابیست right-click کن و Generate Script رو بزن.
2. میتونی از دیتابیست یه Backup بگیری و در مقصد با دستور restore دیتابیست رو بسازی.
ولی راه اولی قشنگ تر و فنی تره.
یعنی داخل اسکریپت میشه یوزر و پسورد مشخص کرد؟1. از دیتابیست اسکریپت بسازی یعنی روی دیتابیست right-click کن و Generate Script رو بزن.
سوال من خیلی ساده است احتمالا بد پرسیدم!
میخوام یک بانک sql درست کنم و در کنار exe برنامه باشه (به سرور attach نشه) همین
ببخشید شما میفرمائید که MSDE تو ویستا ساپورت نمیشه ؟ پس ببخشید ما نرم افزار خودمون رو (هلو) چه جوری داریم تو ویستا نصب میکنیم میدیم دست مردم ؟ آقا تو رو خدا از این شوخا ها نکنید . مایکروسافت هم خودش اگه گفته باشه که نمیشه ، با ید بگم (فعلاً که شده )
یک فایل اجرایی کوچیک درست کنید که sp_attach_db رو با پارامترهای دلخواه شما call کنه.
اگه جستجو میکردید هزاران مورد میدیدید:
https://barnamenevis.org/showthread.php?t=65019
https://barnamenevis.org/showthread.php?t=76342
https://barnamenevis.org/showthread.php?t=65627
https://barnamenevis.org/showthread.php?t=54185
https://barnamenevis.org/showthread.php?t=17073
sp_attach_db رو جستجو کنید تو همین سایت...
...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست
سلام
من یک برنامه می خوام بنویسم که به بانک اطلاعاتی sql sever وصل بشه آیا لازمه که در کامپیوتری که این برنامه قرار است اجرا بشه sql sever نصب شده باشه؟
در مورد دیگر بانک اطلاعاتی ها چطور مانند access ؟
در مورد Access فقط نصب بودن Microdoft Jet OLE کافیه (که معمولا نصب هست) ولی در مورد SQL Server اگه از به سروری Connect میکنید ، نصب بودن SQL Server فقط بر روی سرور کافیه ، ولی اگه هر کامپیوتر بصورت مجزا برا خودش کار میکنه نصب بودن حداقل Client Tools لازمه.
با سلام
اگر بانک را با Sql2000 طراحی کردی باید در کامپیوتر مقصد MSDE2000 را نصب کنی که در خود CD برنامه وجود دارد اما اگر با sql2005 طراحی کردی باید Sql Server Express Edition را نصب کنی که تقریبا 32 مگابایت است.
در ضمن باید روی سیستم مقصد .Net FramWork را هم نصب کنی
موفق باشید.
در تکمیل آخرین پست، باید با کمک یه Batch File، دیتابیس رو Attach کنید.
می تونی از Store Procedure هم برای Attach کردن استفاده کنی. جستجو کنی تو همین سایت فراون توضیح دادند
Stored Procedure برای اجرا مگه نباید Attach باشه؟
احتمالا منظور این بوده که ابتدا به ,master وصل بشیم بعد یک sp به master اضافه کنیم و از طریق ان طریق db رو attach کنیم .
راحتر اینه که به master وصل شیم و بعد script مربوط به attache رو اجرا کنیمو
در دیتابیس master جدولی بنام sysdatabases هست که نام تمام BataBase های Attach شده رو داره. میتونید با یک Query یا Streprocedure بفهمید که Attach شده یا خیر
سلام
sp_attach_db
از استورپروسجرهای مربوط به master است.
با سلام
دوستان گرامی شما می تونید ابتدا دیتابیس را در SqlServer ایجاد کنید و با برنامه به SqlServer متصل بشین و داده ردوبدل کنید.
بعد از اینکه پروژه تون تمام شد و می خواستید که برنامه را Publish کنید بانک را از SqlServer خودتون Detach کنید و فایل بانک را در خود پروژه add کنید و کانکشن استرینگ را تغییر دهید.
زمانی که Publish می کنید بانک در خود شاخه Bin قرار داده میشه.
در کامپیوتر مقصد دیگه نیازی به نصب برنامه SqlServer نیست و فقط کافی است که برنامه SqlServer Express Edition را نصب کنید. نیاز به Attach کردن نیست.
برنامه اجرا میشه.
موفق باشید
با سلام
این هم یه مثال
اگه برنامه را از شاخه \Sqlserver\Sqlserver\bin\Debug اجرا کنی برنامه بدون attach کردن برنامه اجرا میشه
موفق باشید
با سلام
من برنامه را چک کردم مشکلی نداشت
لطفا مشکلی که شما به ان برخوردید را بنویسید
متشکر
در connection String چه چیزی رو دقیقا باید تغییر بدیم
آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
آن لحظه،
لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .
برنولی
با سلام
با 2000 هم اینکار میشه انجام داد
با توجه به اینکه سوالات زیادی در پستهای پراکنده ای در چند روز اخیر پیرامون نحوه 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 رو انجام دهید.
با سلام
اول بانک را با Sql2000 بساز و برنامه را با sql2000 متصل کن بعد از این که برنامه نویسی برنامه تمام شد فایل از از sql دی تش کن و فایل بانک را در شاخه برنامه کپی کن و پروژه را با برنامه VS باز کن - در پنچره Solution Explorer فایل بانک به صورت یه شکلک سفید رنگ وجود داره روی اون شکلک رایت کلیک کن و گزینه Include in project را بزن-بعد کانکش را به بانک جدید تغییر بده
موفق باشید
خیلی خوب بود . تقریبا به جواب خیلی از سوالام رسیدم . ولی هنوز چند تا ابهام وجود داره:1- آیا sp هایی که گفتید حتما باید در برنامه اجرا بشن یا از توی محیط sqlserver2000 هم میشه؟2- چطور باید sp هایی رو که گفتید از تو برنامه اجرا کنم ؟ (در vb توضیح بدید. )3-چطور باید اونها رو در محیط sqlserver2000 اجرا کنم ؟4-اگر بخواهیم یه برنامه نصب مثلا با instalshield بسازیم ، چطور باید db برنامه رو به msde 2000اضافه (attach) کرد ؟تشکر میکنـیــــــــــــــــم!
در قسمتهای مختلف راجع به attache کردن با کدنویسی #c صحبت شده بود اما الگوریتم کلی این کار رو می خواستم
1-فایلهای mdf و ldf باید حتما در هارد طرق قرار بگیرد تا عملیات attache انجام شود درسته ؟
2-بهترین راه چیه برای این کار و کلا انتقال دیتابیس به سرور برای کاربرانی که می خواهنداز برنامه استفاده کنند
اینم نمونه کدش :در قسمتهای مختلف راجع به 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 انجام شود درسته ؟
میتونید اسکریپت دیتابیس رو Generate کنید، یا اگه توش داده هست، میتونید از اون Backup بگیرید و در جای دیگه Restore کنید.2-بهترین راه چیه برای این کار و کلا انتقال دیتابیس به سرور برای کاربرانی که می خواهنداز برنامه استفاده کنند