PDA

View Full Version : Attach کردن بانک



alizanganeh
سه شنبه 01 اسفند 1391, 17:00 عصر
سلام
کدی میخوام که بتونم باهاش بانکی رو به SQL اتچ کنه
ینی من الان SQL رو که نصب کردم ، این برنامه رو اجرا کنم و بطور خودکار بانک به SQL اتچ بشه
اگر مهم که SQL من چیه ، SQL 2000 استفاده می کنم

خیلی ممنون از لطفتون :قلب::قلب::قلب:

m.4.r.m
سه شنبه 01 اسفند 1391, 20:01 عصر
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;

hessam2003
سه شنبه 01 اسفند 1391, 20:04 عصر
سلام.
این کد را کجای برنامه بذاریم؟

alizanganeh
سه شنبه 01 اسفند 1391, 22:39 عصر
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;



ممنون بسیار
ولی مطمئنید این کد روی SQL 2000 کار میکنه؟
میشه بیشتر توضیح بدید که باید چیکارش کنم؟
و اینکه تعریف چیزی نیاز نداره و ...
ممنون

alizanganeh
چهارشنبه 02 اسفند 1391, 13:11 عصر
دوستان اگر کمکم کنید خیلی ممنون میشم :قلب:

m.4.r.m
چهارشنبه 02 اسفند 1391, 14:22 عصر
خوب این نمونه کد بود براتون شما قسمت مسیر دیتابیس خودتون رو جایگزین این می کنید فایل MDF و LDF رو براتون نمونه گذاشتیم . در ضمن کد های SQL برای تمام ورژن ها یکی است . شما برای فراخوانی جداولت از چه دستوری استفاده می کنی ؟ از دستور Select مثلا با Adodc خوب اینم همینطوریه تو لود فرم برنامت این کد رو میزاری دیگه

Adodc1.RecordeSource="دستور بالا"
Adodc1.Refresh
مثلا با همچین کدی می تونی عمل اتچ رو انجام بدین

alizanganeh
چهارشنبه 02 اسفند 1391, 17:55 عصر
متوجه نشدم :لبخند:

m.4.r.m
چهارشنبه 02 اسفند 1391, 23:41 عصر
خدایی بلدی با دیتابیس کار کنی و برنامه بنویسی ؟:بامزه:

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

alizanganeh
پنج شنبه 03 اسفند 1391, 00:10 صبح
خدایی بلدی با دیتابیس کار کنی و برنامه بنویسی ؟:بامزه:

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



دستت درد نکنه

پرفسور اگر قرار بود بصورت دستی اتچ کنم واسه چی بیام تاپیک بزنم؟

یکبار درست توضیح بده شما بی زحمت

بعد ببین میشه یا نه

ممنون

m.4.r.m
پنج شنبه 03 اسفند 1391, 12:34 عصر
شما چرا باید همه کارهارو با وی بی انجام بدین ؟

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

alizanganeh
پنج شنبه 03 اسفند 1391, 13:01 عصر
شما چرا باید همه کارهارو با وی بی انجام بدین ؟

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



اینجوری که میگی اگر با کوئری بشه که راحتتره
ولی توی SQL 2000 با نام View هستش که وقتی توی کدهاش تغییرات میدم SQL بسته میشه

برای من فرقی نمیکنه . من میخوام یک فایلی باشه تا کاربر اجرا کنه و بانک اتچ بشه
حالا میخواد فرم وی بی باشه یا کوئری یا هر چیز دیگه
ولی در حال حاضرز توی sql وقتی میخوام view بگیرم ارور میده و میبنده :عصبانی++:

m.4.r.m
پنج شنبه 03 اسفند 1391, 15:20 عصر
تو sql 2000 هم کوئری هست view برای ارتباط جداول استفاده میشه نه برای کوئری نوشتن دکتر برای این کار باید با Store Procedure بنویسی .

alizanganeh
پنج شنبه 03 اسفند 1391, 16:06 عصر
خب کدی که دادی رو کجا باید بنویسم پرفسور؟
توی text که اولش میخواد که نمیشه
اونجا بجای owner چی باید بنویسم پرفسور ؟ !

m.4.r.m
پنج شنبه 03 اسفند 1391, 19:22 عصر
بابا به خدا انقدر ها هم سخت نیست دکتر ؛

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

alizanganeh
پنج شنبه 03 اسفند 1391, 21:11 عصر
چرا سخته :لبخند:

خب اجرا کنم چطوری
اینی که دادی که پسوندش sql هستش و با notepad باز میشه
چطوری اجراش کنم؟
ببخشیداااا :شیطان:

m.4.r.m
جمعه 04 اسفند 1391, 00:45 صبح
بابا چرا انقدر آخه ...

با خود SQL باز کن آخه الان کسی از 2000 استفاده نمی کنه که برو 2008 نصب کن خیال خودتو راحت کن

SQL رو اجرا که کردی روی دیتابیس Master کلیک راست کن New Query نوشته کلیک کن باز شه اون کد رو که دادم بنویس اجرا کن

alizanganeh
جمعه 04 اسفند 1391, 12:46 عصر
عزیزم شما با اونش چیکار داری؟
الان فکر میکنی چون دارم اینو میپرسم ازت ، هیچی بلد نیستم؟
دوست عزیز من چون یک کد بک آپ و ری استور دارم که فقط با sql 2000 کار میکنه
و نصب sql 2008 اگر سیستم قوی که باشه 30/40 دقیقه طول میکشه
بعد فکر کن من بخوام روی 40 تا سیستم نرم افزارمو نصب کنم.اون موقع 6 ماه میخوام وقت بذارم روی این

و قبلا تست کردم که اگر سیستم طرف ضعیف باشه ، با sql 2008 چون خیلی سنگینه سرعت تبادل اطلاعات بین بانک و نرم افزار میاد پایین
و اینکه اگر بانکی رو توی sql 2008 ببری ، چون ورژنش جدیدتره ، دیگه توی sql 2000 اتچ نمیشه
ولی اگر توی sql 2000 بذاری ، توی تموم sql ها اتچ میشه
و کلی دلیل دیگه

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

بازم ممنون

m.4.r.m
جمعه 04 اسفند 1391, 23:01 عصر
بیخیال خودت پیداش کن من هرچی می گم تو نمیگیری

alizanganeh
شنبه 05 اسفند 1391, 09:05 صبح
ای بابا این که نمیشه کمک کردن
من یه چیز میگم شما یه چیز
بعدشم اینقدر عاقل اندر صفی برخورد نکن با بقیه
بهترین برنامه نویس سال نیستی هاااا
منم فکر نکن دارم اینو ازت میپرسم ، دارم ماشین حساب مینویسم
دارم نرم افزار بهزیستی یک استانو مینویسم
هرچند شاید بگی که نوشتنش کاری نداره . که خیلی هم راحت نیست ، ولی مهم اعتباره

بازم ممنون . موفق باشی

hrj1981
شنبه 05 اسفند 1391, 10:48 صبح
ای بابا این که نمیشه کمک کردن
من یه چیز میگم شما یه چیز
بعدشم اینقدر عاقل اندر صفی برخورد نکن با بقیه
بهترین برنامه نویس سال نیستی هاااا
منم فکر نکن دارم اینو ازت میپرسم ، دارم ماشین حساب مینویسم
دارم نرم افزار بهزیستی یک استانو مینویسم
هرچند شاید بگی که نوشتنش کاری نداره . که خیلی هم راحت نیست ، ولی مهم اعتباره

بازم ممنون . موفق باشی
دوست عزيز اينجوري برخورد نكن ، اينجا هيچكس نه استاده و نه شاگرد ، مطمئنم خودتم متوجه شده باشي وقتي موضوعي را ميخواي مطرح كني سعي ميكني به راحت ترين راه منظور خودتو برسوني و دوستاي پاسخ دهنده هم همينطور ، پس يكم متانت از هر دو طرف هيچي از شخصيت ما كم نميكنه .
براي جواب سوالت من يك روش ديگه بهت پيشنهاد ميكنم ، چرا كد ساختن بانك اطلاعاتي و جدولها را داخل برنامت نميذاري تا هر وقت روي سيستم جديد نصب شد هنگام اجراي برنامه بانك اطلاعاتي رو اتوماتيك بسازه؟

m.4.r.m
شنبه 05 اسفند 1391, 14:49 عصر
دوست عزيز اينجوري برخورد نكن ، اينجا هيچكس نه استاده و نه شاگرد ، مطمئنم خودتم متوجه شده باشي وقتي موضوعي را ميخواي مطرح كني سعي ميكني به راحت ترين راه منظور خودتو برسوني و دوستاي پاسخ دهنده هم همينطور ، پس يكم متانت از هر دو طرف هيچي از شخصيت ما كم نميكنه .
براي جواب سوالت من يك روش ديگه بهت پيشنهاد ميكنم ، چرا كد ساختن بانك اطلاعاتي و جدولها را داخل برنامت نميذاري تا هر وقت روي سيستم جديد نصب شد هنگام اجراي برنامه بانك اطلاعاتي رو اتوماتيك بسازه؟

بله درسته اینجا اومدیم کمک کنیم به همدیگه اما دوست عزیزمون کد SQL خواستن من بهشون دادم این کد رو هم تو کوئری SQL تست کردم بهشون دادم اما دوستمون هر سری میگه چه جوری خوب راهنمایی یعنی این که نمونه بهت بدن بری دنبالش کدشو بنویسی ناراحت نشی ها دوست عزیزم اما وقتی نمیدونی کجای SQL باید کوئری رو بنویسی و اجرا کنی مشکل منه ؟ خوب داخل برنامه من از سایت های خارجی هم به خاطر این آقا جست و جو زدم دیدم داخل برنامه نمیشه Attach کرد یعنی قبل از اتچ باید به SQL کانتک بشی که تو کانتک هم از شما نام بانک اطلاعاتی می خواد منطقا یعنی نمیشه اتچ زد مگه اینکه یه کد درست حسابی گیر بیاری من گفتم یه کوئری داخل SQL بنویس و در سیستم کاربر اجراش کن بهترین و راحت ترین راه ممکن اما ایشون میگه کجا بنویسم کجا اجرا کنم کجا رو باید قبلا یاد بگیری دوست من اول خودتون مشکل خودتونو حل کنید بعد سوال مطرح کنید ممنون

hrj1981
شنبه 05 اسفند 1391, 19:36 عصر
من قبلا اين كار رو انجام دادم اما متاسفانه چون مدت زمان زيادي ازش گذشته جزئياتش يادم نمياد (سعي ميكنم تست كنم ) اما يك نكته مهمش يادمه :
منظور از اتچ كردن اينه كه شما بتوني نام و مشخصات و مسير يك ديتابيس جديد(كه ديتابيس قبلا توسط كاربر ساخته شده) رو به سرور بشناسوني ، تويه SQLSERVER چندتا ديتابيس به صورت پيشفرض هستند كه هر كدوم وظيفه مشخصي دارن . درون يكي از ديتابيس ها ي پيش فرض جدولي وجود داره كه نام و مشخصات ديتابيس هاي اتچ شده رو داخل خودش ذخيره مي كنه و هر وقت يك ديتابيس اتچ يا داتچ ميشه اون نام اضافه يا حذف ميشه

hrj1981
شنبه 05 اسفند 1391, 19:46 عصر
اينم تست كنيد بد نيست

Dim oSQLServer As SQLServer 'Import from Refrence (Microsoft SQLDMO Object library)
Set oSQLServer = New SQLServer
oSQLServer.LoginSecure = True
oSQLServer.Connect SERVER_NAME, SERVER_UID, SERVER_PWD
oSQLServer.AttachDB Database Name, Database File Path
Set oSQLServer = Nothing

alizanganeh
شنبه 05 اسفند 1391, 19:57 عصر
دوست عزيز اينجوري برخورد نكن ، اينجا هيچكس نه استاده و نه شاگرد ، مطمئنم خودتم متوجه شده باشي وقتي موضوعي را ميخواي مطرح كني سعي ميكني به راحت ترين راه منظور خودتو برسوني و دوستاي پاسخ دهنده هم همينطور ، پس يكم متانت از هر دو طرف هيچي از شخصيت ما كم نميكنه .
براي جواب سوالت من يك روش ديگه بهت پيشنهاد ميكنم ، چرا كد ساختن بانك اطلاعاتي و جدولها را داخل برنامت نميذاري تا هر وقت روي سيستم جديد نصب شد هنگام اجراي برنامه بانك اطلاعاتي رو اتوماتيك بسازه؟


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

والا من نمیدونستم که میشه با کد جدول ساخت و ... . اگر کدش باشه فکر میکنم کار خوبی باشه.ممنون

alizanganeh
شنبه 05 اسفند 1391, 19:57 عصر
بله درسته اینجا اومدیم کمک کنیم به همدیگه اما دوست عزیزمون کد SQL خواستن من بهشون دادم این کد رو هم تو کوئری SQL تست کردم بهشون دادم اما دوستمون هر سری میگه چه جوری خوب راهنمایی یعنی این که نمونه بهت بدن بری دنبالش کدشو بنویسی ناراحت نشی ها دوست عزیزم اما وقتی نمیدونی کجای SQL باید کوئری رو بنویسی و اجرا کنی مشکل منه ؟ خوب داخل برنامه من از سایت های خارجی هم به خاطر این آقا جست و جو زدم دیدم داخل برنامه نمیشه Attach کرد یعنی قبل از اتچ باید به SQL کانتک بشی که تو کانتک هم از شما نام بانک اطلاعاتی می خواد منطقا یعنی نمیشه اتچ زد مگه اینکه یه کد درست حسابی گیر بیاری من گفتم یه کوئری داخل SQL بنویس و در سیستم کاربر اجراش کن بهترین و راحت ترین راه ممکن اما ایشون میگه کجا بنویسم کجا اجرا کنم کجا رو باید قبلا یاد بگیری دوست من اول خودتون مشکل خودتونو حل کنید بعد سوال مطرح کنید ممنون


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

بازم ممنونم ازت

alizanganeh
شنبه 05 اسفند 1391, 20:06 عصر
داداش دمت گرم
بنظر این کد خیلی امیدوار کننده میاد
فقط توی این کد مشکل دارم :

oSQLServer.AttachDB "taranom", Database file path


نام بانکم که taranom هستش رو به صورت بالا نوشتم و مشکلی نداشت
ولی جای آدرس فایل بانک وقتی آدرس رو داخل "" مینویسم بازم مشکلی نداره ولی من نمیدونم چطوری باید فایل بهش معرفی کنم.
منظورم اینه که بانک 2 تا فایل داره . یکی mdf و یکی ldf . من یکبار فقط mdf که اصل کاری هست رو ارائه دادم که گفت عملیات ناموفق و ممکنه فایل بانک درست نباشه
یکبار بک آپ بانک رو معرفی کردم و بازم همین پیغام رو داد

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

hrj1981
شنبه 05 اسفند 1391, 20:07 عصر
اينم براي ساخت يك جدول داده ها و تراكنشها(اول امتحانش كنيد)

Dim Cnn As New Connection
Cnn.Open "Provider=sqloledb;Data Source= " & SERVER_NAME & ";Initial Catalog=master;Persist Security Info=false;Integrated Security=SSPI;"
Cnn.Execute "CREATE DATABASE DatabaseName ON" & _
"(NAME = DatabaseName(MDF Name)," & _
"FILENAME = ' MDF Database File Path ', " & _
"SIZE=2,MAXSIZE=UNLIMITED) , " & _
"(NAME = DatabaseName(LDF Name)," & _
"FILENAME = ' Ldf Database File Path ', " & _
"SIZE=2,MAXSIZE=UNLIMITED)"

hrj1981
شنبه 05 اسفند 1391, 20:08 عصر
داداش دمت گرم
بنظر این کد خیلی امیدوار کننده میاد
فقط توی این کد مشکل دارم :

oSQLServer.AttachDB "taranom", Database file path


نام بانکم که taranom هستش رو به صورت بالا نوشتم و مشکلی نداشت
ولی جای آدرس فایل بانک وقتی آدرس رو داخل "" مینویسم بازم مشکلی نداره ولی من نمیدونم چطوری باید فایل بهش معرفی کنم.
منظورم اینه که بانک 2 تا فایل داره . یکی mdf و یکی ldf . من یکبار فقط mdf که اصل کاری هست رو ارائه دادم که گفت عملیات ناموفق و ممکنه فایل بانک درست نباشه
یکبار بک آپ بانک رو معرفی کردم و بازم همین پیغام رو داد

اینو لطف کنید فکر کنم درست بشه
بازم ممنون
فايل ديتابيس رو قبلا اتچ كرده بوديد ؟

alizanganeh
شنبه 05 اسفند 1391, 20:35 عصر
فايل ديتابيس رو قبلا اتچ كرده بوديد ؟



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

مشکل فقط برای فایلیه که معرفی شده

alizanganeh
شنبه 05 اسفند 1391, 20:36 عصر
اينم براي ساخت يك جدول داده ها و تراكنشها(اول امتحانش كنيد)

Dim Cnn As New Connection
Cnn.Open "Provider=sqloledb;Data Source= " & SERVER_NAME & ";Initial Catalog=master;Persist Security Info=false;Integrated Security=SSPI;"
Cnn.Execute "CREATE DATABASE DatabaseName ON" & _
"(NAME = DatabaseName(MDF Name)," & _
"FILENAME = ' MDF Database File Path ', " & _
"SIZE=2,MAXSIZE=UNLIMITED) , " & _
"(NAME = DatabaseName(LDF Name)," & _
"FILENAME = ' Ldf Database File Path ', " & _
"SIZE=2,MAXSIZE=UNLIMITED)"



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

بازم ممنون

m.4.r.m
شنبه 05 اسفند 1391, 21:23 عصر
این کد رو اجرا کنی دیتابیس شما به SQL سرور اتچ میشه تست کردم درست کار کرد :

Private Sub Form_Load()
Dim Cnn As New Connection
Cnn.Open "Provider=sqloledb;Data Source= " & SERVER_NAME & ";Initial Catalog=master;Persist Security Info=false;Integrated Security=SSPI;"
Cnn.Execute "CREATE DATABASE Db ON (FILENAME = 'D:\shahed\PROJECT\SQL DATABASE\BAAR_Data.MDF'),(FILENAME = 'D:\shahed\PROJECT\SQL DATABASE\BAAR_log.ldf')FOR ATTACH; "
MsgBox "دیتابیس شما با موفقیت اتچ شد", vbInformation, ""
End Sub


فقط نام دیتابیس رو باید نام دیتابیسی که خودت قبلا بهش دادی به کد بدی تا در زمان اتچ شدن در حین ادامه کار برنامه با مشکل مواجه نشی
این قسمت رو می گم به جای Db نام دیتابیس خودتو بده


Cnn.Execute "CREATE DATABASE Db

alizanganeh
شنبه 05 اسفند 1391, 21:33 عصر
داداش دمت گرم
درست شد
این کد کمترین و بهترین حالت بود

از اون دوستمونم ممنونم واسه کمکش

داداش بازم ممنون . شرمنده اگر ناراحت شدی.ببخش منو ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥ر