View Full Version : پیشنهاد اساتید دباره نحوه انتقال داده
didaaa
شنبه 01 آبان 1389, 09:36 صبح
سلام:
چند وقتیه درگیر یه مساله مهم هستم و اینکه می خوام اطلاعات یه دیتابیس که در شهرستان هستش رو به مرکز انتقال بدیم و متاسفانه هیچ راه ارتباطی به جز دیسک نداریم و این بگم که نسخه اصلی این دیتابیس تو مرکز هستش و امکانش هست در ما یک بار انتقال اطلاعات برای به روز رسانی بانک مرکز انجام بشه و یا شاید در روز چندبار. بعد از کلی جستجو و مشورت با بزرگان فن یه پیشنهاد شد که از اساتید sql هم در این باره نظر بخوام حالا اگه امکانش هست راهنمایی برفرمایید من چطور اینکارو انجام بدم. اگه میشه نحوه کار رو هم توضیح بدید و یا منابعی معرفی بکنید که بتونم اطلاعاتی دربارش کسب بکنم.
سایت برنامه نویسی و اعضاش تنها کسایی بودن که منو به اینجا رسوندند اینبارم منتطر پیشهادات خوبتون هستم.
حمیدرضاصادقیان
شنبه 01 آبان 1389, 09:51 صبح
سلام.یعنی چی هیچ راه ارتباطی به جز دیسک ندارید؟ یعنی نمیتونید حتی با Dialup به سرور مرکزی وصل بشوید؟
اگر میتونید اینکارو انجام بدید مناسبترین راه استفاده از Replication هست.ولی بهتره به صورت روزانه باشه تا حجم داده های ارسالی کم باشه.چون اگر به صورت ماهیانه باشه حجم داده های ارسالی افزایش پیدا خواهند کرد و اونوقت با Dialup به مشکل برمیخورید زیرا سرعتش برای انتقالهای سنگین پایین هست.
didaaa
شنبه 01 آبان 1389, 10:05 صبح
راستش من sql زیاد بلد نیستم ولی میخوام بدونم ایا میشه واسه این کاری که شما فرمودید یه برنامه رابط نوشت چون بزرگترین مشکل من این که کاربرا مبتدی هستن و باید یه رابطی راهنمایشون بکنه.
حمیدرضاصادقیان
شنبه 01 آبان 1389, 10:17 صبح
سلام.شدنش که میشه.ولی باید حداقل خودتون کامل Replication رو درک کنید تا بتونید برنامه ای براش بنویسید.
اگر در همین سایت هم جستجو کنید یک مقاله 70-80 صفحه ای کامل در این مورد توضیح داده است.
didaaa
شنبه 01 آبان 1389, 10:46 صبح
میدونید مساله چیه!!! مشکل اینجاست همونطور که گفتم کاربرای این سیستم ادمای کاملا مبتدی هستند و من مجبورم یه برنامه برای اینکار طراحی کنم و مشکل دیگه اینکه اپراتور برنامه باید بتونه به تفکیک رکوردهایی رو انتخاب کنه و و در قالب یک فایل به مرکز انتقال بده تا فایل ارسال شده به مرکز اونو به دیتابیس اضافه بکنه. ایا این امکان هم هستش؟؟
حمیدرضاصادقیان
شنبه 01 آبان 1389, 11:12 صبح
سلام.در بحث Replication خیر دیگه این امکانش نیست.شما میتونید برای اینکار در رابط کاربری که می نویسید که جدول باز کنید کاربر بتونه فیلدهارو انتخاب کنه و بعد از اون شما براش دستور insert into رو ایجاد کنید و در دیتابیس مرکزی به عنوان یک script اونو اجرا کنید.
didaaa
شنبه 01 آبان 1389, 11:14 صبح
سلام.در بحث Replication خیر دیگه این امکانش نیست.شما میتونید برای اینکار در رابط کاربری که می نویسید که جدول باز کنید کاربر بتونه فیلدهارو انتخاب کنه و بعد از اون شما براش دستور insert into رو ایجاد کنید و در دیتابیس مرکزی به عنوان یک script اونو اجرا کنید.
عزیز یه مثال میزنید؟
یه کم چیزی که تو فکرتونه هم از نظر کد نویسی و هم منطق پیاده سازیش برام توضیح بدید شما الان به بهترین شکل مشکل منو درک کردید واقعا ممنون میشم راهنمایی کنید.
حمیدرضاصادقیان
شنبه 01 آبان 1389, 11:44 صبح
سلام.ببینید کاربر مثلا رکوردهای شما رو انتخاب کرده دستور شما به شکل زیر می شود
insert Into database1.dbo.table1 (id,name) values(1,'hamid')
insert into database1.dbo.table1(id,name) values(2,'ali')
این کد برای نسخه 2000 هست در نسخه 2005و2008 نیز به همین شکل هم میشه نوشت به شکل ساده تری هم میشه نوشت.
فقط نکته اینجاست که شما این 2 رکوردی که دارم اضافه میکنم رو به کاربر نمایش میدید و کاربر این دو رکورد رو انتخاب کرده و گزینه انتقال اطلاعات رو میزنه.بعد به تعداد رکوردها این دستور insert بالا تولید میشه.و در نهایت یک فایل sql ایجاد میکنه که کافیه این فایل رو روی سرور اصلی اجرا کنید تا اطلاعات اونجا نیز اضافه بشه.
didaaa
شنبه 01 آبان 1389, 12:02 عصر
میشه مثلا این کارو تو قالب فایل xml انجام داد؟ راستش من یکی از دوستانم این کارو کرده ولی وقتی من هم خواستم این روشو پیداده بکنم به یه سری مشکل برخوردم از جمله اگر داخل بانک ده هزار رکورد داشته باشیم نمیدونم سرنوشت برنامه چی میشه این بگم که این بنده خدا بعد از اینکه اطلاعاتشو بصورت فایل xml ذخیره میکرد و بعد با یه برنامه zip اونو فشرده میکردش اینم بگم که از کامپوننت xceed برای این کار استفاده میکرد.
اگه بخواید واضحتر توضیح بدم روشش به اینصورت بود که ابتدا یه فرمی باز میشد و بعد یه گزینه با عنوان ارسال فایل داشت بعد فشردن این گزینه یه پنجره باز میشد و نتیجه نهایی یه فایل zip بود که داخلش یه فایل xml قرار داشت و در اخر تو مرکز اون فایلو با برنامه ای که خودش نوشته بود به دیتابیس انتقال میداد حالا موندم این حجم سنگین داده رو چطور تو قالب xml انتقال میداد یا اصلا این کار شدنیه و من دارم xml رو دست کم میگیرم.
حالا من هم میخوام یه همینچین کاری بکنم!!!!!
حمیدرضاصادقیان
شنبه 01 آبان 1389, 12:12 عصر
سلام.بله شدنی هست.معمولا برای این نوع انتقالات XML میتونه گزینه مناسبتری باشه.خود ابزارهای برنامه نویسی نیز این امکان رو در اختیار شما قرار میدن که قالب رکوردست رو به شکل xml نمایش بدید.میتونید اون رکوردهایی که کاربر انتخاب میکنه رو با رکوردست به صورت xml دراورده و در قسمت Server با استفاده از bulk copy اینکارو انجام بدید.
didaaa
شنبه 01 آبان 1389, 12:15 عصر
دوست عزیز واقعا به خاطر محبتتون ازتون تشکر میکنم.
یه سوال دیگه به نظر شما تا چه حجمی از اطلاعاتو میتونم با xml انتقال بدم.
حمیدرضاصادقیان
شنبه 01 آبان 1389, 12:19 عصر
سلام.فکر نمیکنم محدودیتی داشته باشه.عرض کردم XML معمولا برای اینطور کارها زیاد ازش استفاده میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.