View Full Version : انتقال یا کپی اطلاعات بین دو دیتابیس مانند هم
Ehsan Zand
سه شنبه 11 مرداد 1384, 21:29 عصر
با سلام می خواستم بدونم چطوری میشه اطلاعات رو از یک دیتابیس به
یک دیتا بیس دیگر که تمامی table های آنها مشابه است کپی کرد.
مثلا برای بایگانی اطلاعات ورودی یک سال و اینکه بتوانیم هر وقت
خواستیم اطلاعات سالهای گذشته را از بانک بایگانی لود کنیم.
AminSobati
سه شنبه 11 مرداد 1384, 23:09 عصر
احسان جان،
بسته به پیچیدگی نیازتون، روشهای مختلفی وجود داره. در حدی که شما توضیح دادین، Import/Export هم بهتون کمک میکنه. میتونین عمل مورد نظر رو به شکل Package ذخیره کنین تا در مواقع لازم مجددا ازش استفاده بشه
Ehsan Zand
چهارشنبه 12 مرداد 1384, 11:17 صبح
سلام
خیلی ممنون
فقط می شه یه مثال برای بانک مثلا a1 بزنی که می خواهیم اطلاعات آن را آخر هر سال بایگانی وبانک را خالی کنیم و اطلاعات سال جدید را وارد کنیم و بعد هر وقت که خواستیم اطلاعات مثلا سال 1383 را بازیابی و استفاده کنیم. البته من از این چیز هایی که شما در بالا گفتید چیزی نمی دونم . اگه ممکنه یه sample برام بزار.
بسیار متشکرم.
AminSobati
پنج شنبه 13 مرداد 1384, 00:06 صبح
سلام،
Import/Export در بین Iconهایی که SQL Server نصب میکنه وجود داره. در طی این Wizard شما مبدا و مقصد رو مشخص میکنین تا اطلاعات منتقل بشن. این امکان وجود داره که برای انتقال اطلاعات، یک Query بنویسین تا رکوردهای حائز شرط خاصی منتقل بشن.
متاسفانه این مطلبی نیست که Sample داشته باشه، فقط چند صفحه Wizard بسیار سادست..
Ehsan Zand
پنج شنبه 13 مرداد 1384, 01:23 صبح
سلام آقای ثباتی
شما کارتون خیلی درسته
export/import رو دیدم وامتحان کردم همین مشکل من را حل می کند. فقط
اینکه آیا میشه اینها رو با کد نوشت. در ضمن من می خوام که بانک های بایگانی در لیست
database ها نباشد یعنی در واقع بعد از export از آن backup بگیرم و پاکش کنم. آیا این راه خوبیه؟
اگه هست لطفا کد پاک کردنش رو هم برام بنویسین.
باز هم تشکر.
AminSobati
جمعه 14 مرداد 1384, 00:36 صبح
سلام احسان جان،
شما در Wizard، در صفحه آخر میتونین این عملیات رو در قالب فایل BAS که برای VB قابل استفاده هست Save کنین و در برنامه مورد استفاده قرار بدین. همچنین در قالب یک Package هم میتونین Save کنین تا در دفعات بعدی اون Package رو Run کنین.
اگر شما از دیتابیس Backup بگیرین و نیازی به خود دیتابیس نداشته باشین طبیعتا میتونین پاکش کنین: DROP DATABASE SomeDB
Ehsan Zand
شنبه 15 مرداد 1384, 22:12 عصر
آقای ثباتی بسیار از شما متشکرم
من با استفاده از راهنمایی شما این کار رو انجام دادم واین فایل رو در vb.net به
عنوان یک module اضافه کردم ولی Error های بسیار زیادی گرفته .در ضمن اینکه
نمی تونم اونهارو رفع کنم نمی دونم که طور از آن استفاده کنم. چون مشکلات
زیاده اگر ممکنه یک لینک یا یک مثال برایم بگزارید.
باز هم از توجهتون ممنونم.
AminSobati
یک شنبه 16 مرداد 1384, 00:55 صبح
من اطلاعی از نوع خطای دریافتی ندارم (ای کاش ارسال میکردین) ولی احتمال میدم رفرنس Microsoft DTSPackage Object Library رو اضافه نکرده باشین
Ehsan Zand
یک شنبه 16 مرداد 1384, 01:40 صبح
چرا این رفرنس رو اضافه کردم .
در ضمن کدی که sql ساخته (شاید در این مورد خاص) بیشتر از 80,000 خط شده.
من در مورد خطا هایی که ایجاد شده خیلی گشتم و خیلی چیزهاهم برای رفعش پیدا
کردم ولی هر کدومشون تفاوتهای زیادی با این کد داشتند. حالا این Package رو میزارم.
خیلی ممنون از کمک و توجهتون.
AminSobati
یک شنبه 16 مرداد 1384, 01:57 صبح
منظور من متن پیغام خطا بود. فایل BAS کمکی نمیکنه چون طبیعتا من دیتابیس شما رو ندارم که بتونم تست انجام بدم!
براتون امکان داره که Package رو در SQL Server نگه دارین و از برنامه دستور اجراش رو فقط بفرستین؟ یا حتی به عنوان Structured Storage File هم باز میتونین Package رو نگه دارین (خارج از SQL Server) و فقط اجراش کنین.
majid_afra222
یک شنبه 16 مرداد 1384, 08:40 صبح
سلام Ehsan Zand عزیز
من برای استفاده از DTS تو بخش دلفی نمونه برنامه گذاشتم، میتونید کدتون رو با اون مقایسه کنید و ببینید مشکلتون کجا بوده. ولی در حالت کلی چیزی که SQL Server بعنوان کد بیرون میده، احتیاج به تغییر داره، چراشو نمیدونم.
parish
یک شنبه 16 مرداد 1384, 09:06 صبح
سلام
شما میتونید با استفاده از یک query این کار رو انجام بدین.
البته باید اون query رو در قالب یک برنامه جدا از برنامه اصلی مثلا تحت عنوان یک برنامه پشتیبان گیری اجرا کنی . اگه خواستی بگو تا متن query رو برات بفرستم.
Ehsan Zand
دوشنبه 17 مرداد 1384, 19:10 عصر
سلام به دوستان گرامی. از توجهتون متشکرم.
منظور من متن پیغام خطا بود. فایل BAS کمکی نمیکنه چون طبیعتا من دیتابیس شما رو ندارم که بتونم تست انجام بدم!
براتون امکان داره که Package رو در SQL Server نگه دارین و از برنامه دستور اجراش رو فقط بفرستین؟ یا حتی به عنوان Structured Storage File هم باز میتونین Package رو نگه دارین (خارج از SQL Server) و فقط اجراش کنین.
شرمنده آقای ثباتی اصلا حواسم نبود که بانک هم باید باشه. من منظورتون رو نفهمیدم. اگه منظورتون اینه که کد اجرای این Package رو از vb.net بر اتون بفرستم مشکل اینجاست که من نمی دونم چطوری باید اجراش کنم.
سلام Ehsan Zand عزیز
من برای استفاده از DTS تو بخش دلفی نمونه برنامه گذاشتم، میتونید کدتون رو با اون مقایسه کنید و ببینید مشکلتون کجا بوده. ولی در حالت کلی چیزی که SQL Server بعنوان کد بیرون میده، احتیاج به تغییر داره، چراشو نمیدونم.
آقا مجید دستت درد نکنه کد شما رو هم دیدم ولی اون توی دلفی نوشته شده و من ازش سر در نمیارم. در ضمن یه سری کد اصلاح شده برای vb.net هم گیر آوردم که اونهاهم با مال من خیلی فرق داشت.
سلام
شما میتونید با استفاده از یک query این کار رو انجام بدین.
البته باید اون query رو در قالب یک برنامه جدا از برنامه اصلی مثلا تحت عنوان یک برنامه پشتیبان گیری اجرا کنی . اگه خواستی بگو تا متن query رو برات بفرستم.
جناب parish اگر شما هم لطف کنی و متن query رو برام بفرستی ممنون می شم .امتحانش میکنم.
باز هم ازهمگی ممنونم.
AminSobati
دوشنبه 17 مرداد 1384, 23:04 عصر
اجرای Package در حقیقت دستور T-SQL نداره و فقط بوسیله DTSRUN.EXE میشه اون رو اجرا کرد. این فایل چون EXE هستش، میبایست از طریق xp_cmdshell بهش دسترسی پیدا کنین. DTSRUN در Books Online مثال داره و استفاده از اون راحته. لذا دستور xp_cmdshell که DTSRUN رو مورد استفاده قرار میده، میتونین از طریق ADO به SQL Server ارسال کنین.
parish
دوشنبه 31 مرداد 1384, 07:30 صبح
Backup
"BACKUP DATABASE"Database name
"TO DISK ="backup file name and directory
" NAME = "Database name
Example
BACKUP DATABASE Bank
TO DISK = d:\db\Bank.dat
NAME = Bank
Restore
RESTORE DATABASE "Database name" FROM
" DISK="backup file name and directory
Example
RESTORE DATABASE Bank FROM
DISK= d:\db\Bank.dat
rohollahmahmoodiany
دوشنبه 28 شهریور 1384, 00:14 صبح
سلام
من دو دیتا بیس دارم که میخواهم اطلاعات یکی را به دیگری اضافه کنم. البته هر دو دیتا بیس پر هستند و فکر نمیکنم که از export یا ویزاردهای دیگری استفاده نمود.امیدوارم که دوستان مثل همیشه یاری نمایند
با تشکر.
rohollahmahmoodiany
سه شنبه 29 شهریور 1384, 00:36 صبح
البته ببخشید از این که دوبا ره میپرسم.علت اینکه دوستان نظری نداده اند چیست:
1-ایا این سوال تکراری است.البته من جستجو کردم و نیافتم
2:دوستان روش این کار را نمیدانند.
3-......
AminSobati
چهارشنبه 30 شهریور 1384, 17:17 عصر
دوست عزیزم علتش چیه که فکر میکنید DTS کمک نمیکنه؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.