PDA

View Full Version : مقاله: ادغام چندتا دیتابیس هم نوع



karzari
جمعه 03 خرداد 1387, 09:38 صبح
سلام
من یه دیتا بیس دارم که خیلی بزرگه برای همین هر قسمت رو یه نفر تکمیل میکنه اما اینا با هم شبکه نیستند و باید هر چند وقت یک بار اینها باهم توی یک دیتابیس ادغام بشن
مثلا مشخصات دانش آموزانی که رشتشون ریاضی رو یک نفر و رشته های دیگه رو نفرات دیگه باید تکمیل کنند که بعدش این اطلاعات همگی باید توی یه جدول به نام دانش آموزان وارد و ادغام بشن
از اونجایی هیچ امکان تداخل در اطلاعات وجود نداره می خواستم بدونم چطور میشه اطلاعات رو از روی سیستم ها وارد کننده گرفت و در یک سیستم دیگه ادغام کرد ؟
در ضمن اگر یه روزی آپدیتی صورت گرفت چی اونوقت چیکار میشه کرد ؟

Accidentboy
جمعه 03 خرداد 1387, 15:37 عصر
سلام
من یه دیتا بیس دارم که خیلی بزرگه برای همین هر قسمت رو یه نفر تکمیل میکنه اما اینا با هم شبکه نیستند و باید هر چند وقت یک بار اینها باهم توی یک دیتابیس ادغام بشن
مثلا مشخصات دانش آموزانی که رشتشون ریاضی رو یک نفر و رشته های دیگه رو نفرات دیگه باید تکمیل کنند که بعدش این اطلاعات همگی باید توی یه جدول به نام دانش آموزان وارد و ادغام بشن
از اونجایی هیچ امکان تداخل در اطلاعات وجود نداره می خواستم بدونم چطور میشه اطلاعات رو از روی سیستم ها وارد کننده گرفت و در یک سیستم دیگه ادغام کرد ؟
در ضمن اگر یه روزی آپدیتی صورت گرفت چی اونوقت چیکار میشه کرد ؟

منظورتون از هر قسمت از Database جدول هاش

یعنی هرTable دست یکی و شما می خواهید همه database تو هر سیستم با سیستمی دیگه اطلاعاتش یکی باشه؟

karzari
شنبه 04 خرداد 1387, 00:32 صبح
خیر
ببینید دیتابیس و همه تیبل های من یجور هست اما در تمامی آنها یه فیلد هست که کد وارد کننده اطلاعات رو ثبت میکنه
حالا من می خوام تمامی اینها رو با هم و بصورت یکجا داشته باشم
مثلا کاربر شماره 1 وقتی که یک رکورد اضافه میکنه در فیلد UserCode شماره 3 ثبت میشه و این کد برای کاربر انحصاریه
اما تمامی اطلاعاتی رو که کاربران وارد کردند باید یکجا جمع بشه تا مدیر مجموعه بتونه اطلاعات رو بصورت کامل ببینه و عملکرد ها رو مقایسه کنه
در مجموع باید بگم من میخوام چندتا بکاپ رو با هم ادغام کنم
باید بگم تمامی مشخصات دیتابیس برای کاربران یکی است

rezarafiee
شنبه 04 خرداد 1387, 10:44 صبح
چرا از replication استفاده نمی کنید

ASKaffash
شنبه 04 خرداد 1387, 11:09 صبح
با سلام
اگر Diagram ارتباط داده را قرار دهید کمک خواهیم کرد که بانک را نرمال کنید واز این ببعد مثلا Replication را نیز برای اتوماسیون فعال کنید شاید هم بتوان از LinkServer استفاده کرد

Accidentboy
شنبه 04 خرداد 1387, 18:39 عصر
با توجه به Post دوستان اگه نمی خواهید از Replication استفاده کنید
می تونید به به هر Table تون یه فیلد ارسال اضافه کنید مثلا Send_Flag که مقدار پیش فرض اون صفر باشه
بعد تو برنامه مثل دلفی چک کنی که تو Table هات اون رکورد هایی که مقدارشون 0 باشه تو یه جدول ذخیره
کنه و بعد اون رکورد ها را 1 کنه
و اون فایل (جدول اطلاعات جدید)رو تو سیستم دیگه تو دیتا بیست Append کن

ehsan_882000
سه شنبه 14 خرداد 1387, 23:16 عصر
use warehouse technology

jafari1
یک شنبه 26 خرداد 1387, 18:46 عصر
سلام
احتياج به select اي دارم كه بتواند اطلاعات چند جدول را برگرداند جداول داراي ساختار مشابهي هستند
براي مثال اگر در جدول A تعداد 100 ركورد و در جدول B تعداد 30 ركورد و در جدول c تعداد 200 ركورد داريم
با دستور select تعداد 330 ركورد باشد

karmand
دوشنبه 27 خرداد 1387, 12:31 عصر
من نمیدهنم چگونه از روی کامپیوتر های مختلف جداولت را جمع میکنی ولی من مشکلم را به این صورت حل می کنم
از هر کامپیوتر mdf وldf را در پوشه های مجزا بیاور و روی کامپیوتر خودت کپی کن
از داخل sql انها را با نامهای مثلا db1-db2 اتچ کن
از اس کیو ال خارج شو
یک دیتابیس خالی بوسیله اکسس پروجکت بساز(اکسس معمولی نه) اگر تا کنون این کار را نکردی تا راهنمایی کنم
از این db خالی به کلیه dbهای دیگر که قبلا ساختی و جداولت در انها است لینک شو اکسس به هر جدول هم نام که لینک شوی عددی از 1 تا ..... میدهد
یک جدول جدید خالی با استرکچر جداولت بسازبنام kol
یک فرم بساز و یک باتن
در ان کلیک باتن کد زیر را بنویس و اجرا کن البته با کمی دستکاری

Private Sub Command0_DblClick(Cancel As Integer)
On Error Resume Next
Dim strSQL As String
Text1.SetFocus
Text1 = " áØÝÇ ÕÈÑ ßäíÏ..."
For I = 10101 To 72005

strSQL = "insert into kol select * from t" & Trim(Str(I))
DoCmd.RunSQL strSQL
Next I
Text1 = " ÇíÇä "
End Sub

ASKaffash
دوشنبه 27 خرداد 1387, 16:32 عصر
سلام
احتياج به select اي دارم كه بتواند اطلاعات چند جدول را برگرداند جداول داراي ساختار مشابهي هستند
براي مثال اگر در جدول A تعداد 100 ركورد و در جدول B تعداد 30 ركورد و در جدول c تعداد 200 ركورد داريم
با دستور select تعداد 330 ركورد باشد

با سلام
اینطوری بنویسید:


Select * From T1
Union
Select * From T2
Union
Select * From T3