PDA

View Full Version : Import/Export بدون SQL-Server واز طریق برنامه



farhad_1378
دوشنبه 13 تیر 1384, 01:16 صبح
با سلام خدمت دوستان .
می خواستم بپرسم که چطوری میشه توی یک برنامه که مثلا با
VB یا C# یا دلفی نوشته شده بدون اینکه از Import/Exportt خود SQL_Server استفاده کرد از بانک Backup گرفت ؟به طور ساده یک دکمه توی برنامه باشه که کار بر دیسکت یا Flash Drive رو توی سیستم بذاره و با فشردن اون بانک به دیسک یا هر جای دیگه کپی بشه .

با تشکر فراوان از کمک دوستان . :reading:

karimh
دوشنبه 13 تیر 1384, 07:59 صبح
سلام
اگه بخوام وقتی از بانک اطلاععاتی پشتیبان میگیرم خودش بره روی یه کامپیوتر دیگه (اونی که رایتر داره :oops: ) و مثلا تو یه فولدر خاص قرار بگیره چیکار باید بکنم؟

با سپاس :sunglass:

majid_afra222
دوشنبه 13 تیر 1384, 11:40 صبح
سلام
من قبلا این سوال رو تو بخش دلفی جواب دادم٬ ‌برنامه نویسی برای امکانات DTS هستش.

farhad_1378
سه شنبه 14 تیر 1384, 07:57 صبح
سلام دوست عزیز .
با تشکر از توجه شما
ولی من چیزی پیدا نکردم.منظورتون اون بخش
ٍکه به فایل
excel
میشه رومی گین؟من نمی خوام بانکم عوض شه همون فایل اصلی ٍExport
رومی خوام.
میشه لبنک یا توضیحاتشو اینجا بذارین.
با تشکر.

majid_afra222
سه شنبه 14 تیر 1384, 15:11 عصر
سلام
من منظورتون رو از export فایل اصلی نمی دونم٬‌لطفا واضح تر بگید.

farhad_1378
سه شنبه 14 تیر 1384, 17:33 عصر
سلام
Destination می خوام SQL-Server باشه .منظورم
اینه که فایل اصلی SQL که پسوند ش mdf است رو روی دیسکت یا .... بریزم نه چیز دیگه ..شاید با کپی کردن معمولی از طریق پیاده سازی فرامین ویندوز بشه ولی تا وقتی که Server در حافظه باشه این کار رو نمیشه کرد به کاربر معمولی هم درست نیست که بگی آقا اول Server رو Stop کن بعد اینو بزن تازه برای Import کردن با کپی نمیشه حتما باید Attach بشه .بنابراین بهترین کار اینه که یه چیزی شبیه Wizard های
Import/Export Data رو از طریق برنامه داشته باشیم.به عنوان ساده مثلا اگه بشه Import/Export Data ی مریوط به SQL-Server رو پارامتری صدازد یاScript ی باشه که توی برنامه با زبانهای مختلف بشه صداش زد ونام بانک مبدا و مسیر مقصد و نوع رو بهش داد و این کار انجام بشه .
مساله اصلی اینه که کسی که می خواد این کار رو بکنه چیری از Server و بانک وExport و.... بلد نیست.برای همین مجبورم که اینجوری باشه برنامه ام .

با تشکر از توجه شما .

majid_afra222
سه شنبه 14 تیر 1384, 20:04 عصر
سلام
خوب تقریبا فهمیدم منظور شما چیه.
همه کاری می تونی بکنی :
1- (اگه میخوای سرور stop بشه بعد فایل رو کپی کنی و در نهایت خودش start بشه) با کد نویسی سرور رو stop کن٬ بعد فایل رو کپی کن و بعدش باز هم سرور رو start کن.
اول دستور shutdown رو به سرور بده (تو command بذارش و اجراش کن)٬ از بانک اطلاعاتی یه کپی بگیر (فایلش رو کپی کن). بعد فایل sqlservr.exe از پوشه binn محل نصب sql server اجرا کن٬ تا سرور دوباره run بشه.
2- با کد نویسی یه backup از بانک اطلاعاتی بساز. (راحتتر و بهتره و مطمئن هم هستش)
3- از همون dts استفاده کن٬‌فقط یه کمی باید تغییرش بدی (یه کمی زیاد).

امیدوارم بدردت بخوره

farhad_1378
چهارشنبه 15 تیر 1384, 07:16 صبح
با تشکر
فکرکنم برای Export به روی فلش دیسک راه Stop وStart سرور رو انجام بدم و بعد کپی کنم بهتر باشه و برای عکسش از کد نویسی استفاده کنم بهتر باشه .
با تشکر از توجه شما
ولی اگه کد مربوط به DTS این کار رو هم پیدا کردین لطفا اینجا بذارین .
ممنون .

AminSobati
چهارشنبه 15 تیر 1384, 12:19 عصر
دوست عزیزم،
اگر منظورتون واقعا Backup هستش، میتونین از دستور مربوطه اش استفاده کنین. مثلا:

BACKUP DATABASE Northwind TO DISK='C:\MyFolder\MyDbBackup.bak'حالا در مقصد باید از دستور RESTORE DATABASE استفاده کنین تا فایل MyDBBackup.BAK مجددا به فایلهای خود دیتابیس تبدیل بشه.
کپی کردن فایلهای MDF و سایر فایلهای مربوطه چندان جالب نیست چون وقتی کاربرها در حال کار هستند نباید سرویس رو Stop کنین. ولی Backup نیازی به این مسئله نداره.

farhad_1378
پنج شنبه 16 تیر 1384, 00:35 صبح
سلام .با تشکر فراوان
حالا می تونین بگین که چطوری میشه این دستور رو توی یک زیان مثل VB.NET یا C#.NET یا دلفی استفاده کرد ؟

فکر کنم به عنوان یک SQLCommand توی .NET باید جواب بده درسته ؟

متشکر . :موفق:

AminSobati
شنبه 18 تیر 1384, 18:11 عصر
کاملا همینطوره!

farhad_1378
سه شنبه 21 تیر 1384, 21:02 عصر
ممنون.خیلی هم ممنون .
حالا یک چیز دیگه:
اگه بانک مثلا روی یک سروری باشه یا توی اینترنت باشه .این دستور روی سرور عمل می کنه و روی هارد کلاینت ها نمیشه نوشت .
برای این کار هم راه حلی دارید.
فرض کنید یکی می خواد هرچند وقت از با نک سایتش Backup بگیره و هاستش هم امکان Import/Export یا ... رو نمی ده چیکار می شه کرد ؟
با تشکر .

AminSobati
سه شنبه 21 تیر 1384, 22:54 عصر
قائدتا چون شما Owner دیتابیس هستین نباید در صادر کردن دستور BACKUP مشکلی داشته باشین. اما برای دسترسی به فایل، میشه که یک فضای FTP ازشون بخواین و Backup رو در این مسیر ایجاد کنین

karim
دوشنبه 27 تیر 1384, 18:20 عصر
دوست عزیز برای انجام اینکار شما میتوانید از Stored Procedure در خود Sql Server استفاده کنید خود Sql Server امکان Backup رو به صورد Query میدهد که شما می توانید با کمک BookOnline آن از نحوه نوشتنش آگاه شده و سپس Stored Procedure خودت رو بنویسی و سپس در محیط دلفی بوسیله پارامتر محل ذخیره شدن رو مشخص کرده و به Stored Procedure خودت بدی و ان رو اجرا بنمایی حتی شما می توانی بانک Sql Server رو Restore بکنی که برای اینکار هم StoredProcedure باید بنویسی ولی باید از بانکی که Resore می شود جدا باشه و هیچ برنامه ای در حال ارتباط با اون بانک نباشد.
با تشکر
امینی
kaamini80@myway.com

AminSobati
سه شنبه 28 تیر 1384, 01:23 صبح
این کاملا صحیحه کریم جان ولی مشکل دوستمون اینه که میبایست نتیجه Backup رو به کامپیوتر خودشون منتقل کنن.