PDA

View Full Version : مشکل با مبحث جالب Replication



MORTEZA66
پنج شنبه 25 مهر 1387, 12:08 عصر
سلام به همگي
من يه برنامه دارم كه قراره تعدادي از اون در چند شعبه از يه شركت تعاوني نصب بشه اين شركت يه سايت داره كه بايد از اطلاعات تمامي اين شعبه ها استفاده كنه يعني اطلاعات از شعبه ها به سايت ارسال شه.
من ميدونم كه بايد از Replication استفاده كنم و از هر كيم ميپرسم فقط همينو ميگه و بس ! در انجام عمل Replication چه با اكسس و چه با SQLServer هم مشكلي ندارم به صورت دستي! فقط نميدونم چطور بايد براي عمل Synchronization با وي بي دات نت كدنويسي كنم! البته با اكسس يه چيزايي بلدم و ميتونم اون رو براي حالت Direct يعني حالتي كه دو ديتابيس روي يه كامپيوتر باشند انجام بدم اما وقتي اونو ميگذارم روي InternetMode و آدرس سايت رو به عنوان Target ميدم خطاي خيلي معروف "Invalid HTTP Address" ميده كه نميدونم چيكارش كنم و اينم ميدونم كه نيازي به آدرس كامل در اون قسمت نيست و فقط كافيه نام سرور رو داد
اينم كدهام



Dim jro_rep As JRO.Replica
Dim cnn1 As ADODB.Connection
Dim strCnn As String
jro_rep = New JRO.Replica
'Replica:
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + …
cnn1 = New ADODB.Connection
cnn1.Open(strCnn)
jro_rep.ActiveConnection = cnn1
'
Dim secConn As New ADODB.Connection
'connect to access database over internet server
Dim strconstring As String = "Provider=MS Remote;Remote Server=http://127.0.0.1;Remote Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ftp://localhost/db/new_MASKAN.mdb;Persist Security Info=False"
secConn.Open(strconstring, "", "")
MsgBox("SUCCESS CONNECTED TO SECONDRY DATABASE")

'main problem in this part
jro_rep.Synchronize("http://LocalHost", _
Global.JRO.SyncTypeEnum.jrSyncTypeImpExp, _
Global.JRO.SyncModeEnum.jrSyncModeInternet)
cnn1.Close()
MsgBox("Replication done successed")

لطفا اگه كسي چيزي به ذهنش ميرسه بگه
همچنين اگه كد نويسي اون رو با SQLSERVER 2005 هم بلديد بازم فرقي نميكنه
فقط خوهشا اگه كسي چيزي به ذهنش مي رسه بگه چون بدجوري توگل گير كردم
اين لينك رو هم خوندم واسه اينكه ديگه كسي اينو نده
http://msdn.microsoft.com/en-us/library/bb226708.aspx

reza6384
جمعه 26 مهر 1387, 10:14 صبح
سلام.
من پيشنهادم اينه كه سوالتون رو در تالار Sql Server مطرح كنيد تا به جواب برسيد.

Sub Zero
شنبه 27 مهر 1387, 09:48 صبح
از این لینک (http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication(printer).aspx) میتونید اطلاعاتی راجع به Replication وانجام آن به وسیله کد نویسی به دست بیارید .

MORTEZA66
یک شنبه 28 مهر 1387, 10:10 صبح
ممنون كاربر subZero
ميخواستم بدونم آيا شما تا حالا اين كارو كردين يا نه
اگه ميشه يه sample بذارين چون من خيلي وقته دارم با اين مشكل سر وكله ميزنم و يه جورايي نااميد شدم بيشتر از 10 تاروش رو هم امتحان كردم اما هر كدوم يه مشكلي داشته اگه ميشه يه كم بيشتر توضيح بدين
خيلي خيلي ممنون

jalalnooritehrani
یک شنبه 28 مهر 1387, 14:56 عصر
سلام به همگی
من یک کمی اطلاعات راجب به ریپلیکیشن اس کیو ال دارم امیدوارم که بدرتان بخوره
ریپلیکیشن هم میتواند از طریق گزینه های اس کیو ال انجام بشه هم بصورت دستی

1- از طریق اس کیو ال : توضیحات کاملی راجب به این مقوله جمع آوری و به پیوست گذاشتم با دقت مطالعه کنید

2- بصورت دستی : شما باید 3جدول بنامهای Log_inp ، Log_confi ، Log_out در دیتابیس های شعب و مرکز ایجاد کنید

- تغییرات اطلاعات در جدوال که میخواهیم ریپلیکیش شود، باید بصورت یک اسکریپ درآمده و در آخر بعنوان یک رکورد در جدول Log_out بنشیند
البته با TRIGGER ها میتوان اینکار را خیلی راحت انجام داد

- بعد تغییرات اطلاعات که بصورت دستورالعملهای Sql درآمده، و در جدول log_out ذخیره شده است،
بوسیله یک job انتقال به دیتابیس مرکز یا دیتابیس شعبه شده
و در جدول Log_inp قرار میگیرد

- در مرحله آخر بوسیله برنامه ای رکورد های جدول Log_inp یکی به یکی خوانده شده و بر روی جداول اصلی اعمال میشود و از جدول Log_inp حذف میشود

- اگر هنگام اجرا برنامه خواندن log ، رکوردی به مشکل بر بخورد آن رکورد به جدول Log_confi ارسال میشود تا در آینده بررسی شود چرا این رکورد ها روی جداول اعمال نشده اند

:لبخندساده::خجالت: