PDA

View Full Version : سوال: انتقال اطلاعات بين SQL و XML به طور ساده



rahe behtari hast
شنبه 11 آذر 1391, 12:59 عصر
من يك پايگاه داده xml دارم و يك پايگاه داده SQL
با ستونهاي:
نام-فاميل-سن-تلفن

تصميم دارم در عمل "گرفتن پشتيباني" اطلاعات SQL رو بريزم داخل يك XML
و در عمل "بازخواني نسخه پشتيباني" عكس همين كار رو انجام بدم

به صورت كلي من براي XML2SQL اين كار رو ميكنم:

قدم اول: كل جدول SQL رو خالي ميكنم
قدم دوم: اطلاعات XML رو به صورت سلول به سلول ميخونم. اطلاعات رو نگه ميدارم تا يك سطر كامل بشه
قدم سوم: بعد با يك دستور insert اونها رو وارد SQL ميكنم

مرحله دوم و سوم رو اونقدر تكرار ميكنم كه تمام اطلاعات منتقل بشه

راه سريعتري وجود نداره كه:

تمام محتويات XML رو سلكت كنم و با يد insert همه رو منتقل كنم؟

Mahmoud.Afrad
شنبه 11 آذر 1391, 13:10 عصر
برای گرفتن پشتیبان از دیتابیس تمام اطلاعاتی که نیاز داری رو سلکت کن بریز توی جداول دیتاست. بعد هم دیتاست را با متد writexml به فایل منتقل کن.
برای عکس این کار با متد load از شئ دیتاست میتونی فایل پشتیبان رو داخل دیتاست لود کنی و بعد اطلاعات رو سطر به سطر در دیتابیس درج کنی.

rahe behtari hast
شنبه 11 آذر 1391, 13:35 عصر
برای گرفتن پشتیبان از دیتابیس تمام اطلاعاتی که نیاز داری رو سلکت کن بریز توی جداول دیتاست. بعد هم دیتاست را با متد writexml به فایل منتقل کن.
برای عکس این کار با متد load از شئ دیتاست میتونی فایل پشتیبان رو داخل دیتاست لود کنی و بعد اطلاعات رو سطر به سطر در دیتابیس درج کنی.
مهندس يادم رفت بگم من دارم از Linq استفاده ميكنيم
توي linq من فقط يك dataclass دارم. dataset ندارم.
حالا چطور اين كار رو انجام بدم؟

hakim22
شنبه 11 آذر 1391, 14:28 عصر
برای اینکه با یک حرکت کپی انجام شود شما یا باید از Dataset های آماده یی که خود VS از دیتابیس generate میکنه استفاده کنید . یا در صورتی که از LINQ to SQL استفاده می کنید با استفاده از SQLMetal کدهای مربوطه را باز با کمک این ابزار کمکی Generate کنید.

Mahmoud.Afrad
شنبه 11 آذر 1391, 14:39 عصر
برنامتون در مورد چیه؟ امنیت اطلاعات در فایل xml رو میخوای چه کار کنی؟ برای چی از پشتیبان گیری خود ms sqlserver استفاده نمیکنی؟

rahe behtari hast
شنبه 11 آذر 1391, 15:10 عصر
برنامتون در مورد چیه؟ امنیت اطلاعات در فایل xml رو میخوای چه کار کنی؟ برای چی از پشتیبان گیری خود ms sqlserver استفاده نمیکنی؟
نه مهندس اطلاعات اصلا محرمانه نيست. ضمنا تعداد ركوردها هم پايينه در حد 1000 ركورد. دليل اين كه ميخوام xml بگيرم اينه كه من يك برنامه دارم كه گروههاي زيادي باهاش كار ميكنن هر كس بايد جدولي رو پر كنه و اگه خواست اطلاعات اون جدول رو بك آپ بگيره تا سري بعد كه سري بعد كه برنامه رو نصب كرد مجبور نباشه اطلاعات رو از اول لود كنه. در همين حد...

راستي من اون SQLMetal رو نميشناسم. اگر كسي ميتونه راهنماييم كنه

hakim22
شنبه 11 آذر 1391, 18:32 عصر
در مورد SQLMetal
http://msdn.microsoft.com/en-us/library/bb386987.aspx

با استفاده از این کدساز شما میتوانید LINQ TO SQL رو به صورت خودکار تولید کنید برای استفاده ابه CMD مربوط به خود VS بروید و از راهنما کدها رو وارد کنید تا خودش از روی Table یک کلاس بسازد که با افزودن به برنامه همه ی انواع عملیات های LINQ روی یک بانک قابل اجرا میشود