ورود

View Full Version : پرکردن دو جدول مشابه



غلامرضا شریفی
چهارشنبه 20 خرداد 1388, 12:26 عصر
سلام من دوتا بانک دارم که در دو کامپیوتر جدا هستند هر چند وقت باید اطلاعات دو جدول این بانکها با یکدیگر یکسان شوند یعنی از روی بانک 1جدول 1 روی بانک 2جدول 2 ریخته شود آیا یک فرمان وجود دارد این عمل صورت گیرد ----- در فاکسپرو دستور appen from بود در sqlچه فرمانی است

Elham_gh
چهارشنبه 20 خرداد 1388, 14:16 عصر
همان دستور Insert است:


INSERT INTO server1.db1.sch1.tbl1
SELECT * FROM server2.db2.sch2.tbl2

غلامرضا شریفی
سه شنبه 30 تیر 1388, 17:38 عصر
ميشود لطف كنيد يك كم دستور فوق را بازتر كنيد

ASKaffash
چهارشنبه 31 تیر 1388, 07:47 صبح
همان دستور Insert است:


INSERT INTO server1.db1.sch1.tbl1
SELECT * FROM server2.db2.sch2.tbl2

سلام
قسمت قرمز رنگ باید از روشی مثل Linked Server صورت گیرد و مستقیما قابل پیاده سازی نیست

غلامرضا شریفی
پنج شنبه 01 مرداد 1388, 20:59 عصر
ميشود لطف كنيد يك نمونه بگذاريد

meysam_pro
پنج شنبه 01 مرداد 1388, 22:26 عصر
چرا میخای دستی این کار رو بکنی؟
Replication چرا نمیزنی بینشون. یه کم سخته ولی جواب میده.

غلامرضا شریفی
شنبه 03 مرداد 1388, 10:12 صبح
يك سيستم دارم كه در مكان ديگري خارج از شبكه است بايد هر هفته اي يكبار اطلاعات يكسان سازي شود

بهنام بهمنی
شنبه 03 مرداد 1388, 15:31 عصر
اگر منظورتان از خارج از شبکه این که هیچ ارتباطی با هم ندارند می توانید:
1- export به اکسل کرده و بعد از آن به SQL برگردانید
2- می توانید Backup گرفته ودر صورتی که کل آنرا میخواهید, روی پایگاه داده مقصد بازیابی کنید و گرنه با نام دیگری آنرا بازیابی و بعد مطابق روشی که دوستمان گفته داده ها را انتقال دهید.

غلامرضا شریفی
شنبه 03 مرداد 1388, 18:51 عصر
من از روش ذيل استفاده ميكنم فقط مشكلم در select كردن از سرور روي شبكه است

Dim Strsql_in As String = "insert into A_personal_m (Fno_oz) select Fno_oz from A_personal"
Dim cmd_in As SqlCommand
cmd_in = New SqlCommand(Strsql_in, New SqlConnection("Data Source=.;Initial Catalog=Masraf_rabet;Integrated Security=True"))
cmd_in.Connection.Open()
cmd_in.ExecuteNonQuery()
cmd_in.Connection.Close()

در روش كه شما فرمودين

اگر منظورتان از خارج از شبکه این که هیچ ارتباطی با هم ندارند می توانید:
1- export به اکسل کرده و بعد از آن به SQL برگردانید
2- می توانید Backup گرفته ودر صورتی که کل آنرا میخواهید, روی پایگاه داده مقصد بازیابی کنید و گرنه با نام دیگری آنرا بازیابی و بعد مطابق روشی که دوستمان گفته داده ها را انتقال دهید.
اگر كاربر هميشه خودم باشم مشكلي نيست ولي براي ديگر كاربران اين روش راهي صحيح نيست

shocraneh
یک شنبه 11 مرداد 1388, 17:49 عصر
منم دو پایگاهم روی دو سرور متفاوته حالا من backup گرفتم و restore کردم رو همون پایگاه اما مفاهیم زیر رو متوجه نشدم
Replicationو Linked Server


در ضمن آقای شریفی درست متوجه سوالتون نشدم (فقط مشكلم در select كردن از سرور روي شبكه است ) یعنی نتونستی از لاینت به سرور وصل شی یا مشکل چیز دیگه ایه؟؟

بهنام بهمنی
یک شنبه 11 مرداد 1388, 18:08 عصر
در روش كه شما فرمودين اگر كاربر هميشه خودم باشم مشكلي نيست ولي براي ديگر كاربران اين روش راهي صحيح نيست

تعریفی که شما از مساله دارید, شبیه تهیه دیسک بانک و یا لیست تامین اجتماعی و همچین چیزهایی است که بین مبدا و مقصد هیچ ارتباطی نیست.
در این سیستم ها همانطور که مطلئید بین کامپیوتر ما و کامپیوتر مقصد هیچ ارتباطی وجود ندارد و برنامه مبدا به ما این امکان را می دهد که پشتیبان گیری کنیم و بعد از انتقال به مقصد در مقصد امکان بازیابی از طریق برنامه موجود است.

شما هم همین کار را باید بکنید.

دوستی هم که راجع به Replicationو Linked Server سئوال کردن با یک جستجو در همین سایت برنامه نویس به جوابتان خواهید رسید

shocraneh
یک شنبه 11 مرداد 1388, 20:21 عصر
http://barnamenevis.org/forum/showthread.php?p=769392#post769392
در ادامه

Public Sub connect()
cn.ConnectionString = "Data Source='" + System.IO.File.ReadAllText(Application.StartupPath .ToString + "\constring.txt", System.Text.Encoding.Default) + "';Initial Catalog=project;Integrated Security=True"
End Sub
تو اولین فرمی که رو پروژهات لود میشه connect رو فراخوانی و close کن
باید تو مسیر bin یه تکس با نام constring.txt ایجاد و آدرس سرور رو داخلش بنویسی
اگه می خای رو سیستم خودتون اجرا بشه . میزاری



البته من هنوز خودم رو شبکه امتحان نکردم اما قبلا دوستان استفاده کردن فکر نکنم مشکل داشته باشه
طی چند روز اینده امتحانش می کنم

غلامرضا شریفی
یک شنبه 11 مرداد 1388, 20:24 عصر
جناب اقاي بهرام بهمني عزيز من يك شبكه دارم و سرور مركزي كه چند سيستم در حال كار هستند هر هفته يك سيستم ديگر را خارج از شبكه است به شبكه متصل ميشود بايد اطلاعات جديد به آن انتقال يابد قصد من اين است كه با زدن يك دكمه اطلاعات داخل تيبل روي شبكه به تيبل روي اين سيستم انتقال يابد و كاربر درگير نباشد

غلامرضا شریفی
یک شنبه 11 مرداد 1388, 20:33 عصر
در ضمن آقای شریفی درست متوجه سوالتون نشدم (فقط مشكلم در select كردن از سرور روي شبكه است ) یعنی نتونستی از لاینت به سرور وصل شی یا مشکل چیز دیگه ایه؟؟
در حالت ذيل
INSERT INTO server1.db1.sch1.tbl1
SELECT * FROM server2.db2.sch2.tbl2
در خط دوم select است كه ميخواهم اطلاعاتش را از روي بانك موجود در شبكه بخواند و insertكند در بانك روي سيستم خودم كه كالاينت است

ASKaffash
دوشنبه 12 مرداد 1388, 07:51 صبح
سلام
برای استفاده از Linked Server صفحه 72 این لینک را به دقت مطالعه کنید:
http://barnamenevis.org/forum/showthread.php?t=106494

غلامرضا شریفی
دوشنبه 12 مرداد 1388, 12:16 عصر
سلام
برای استفاده از Linked Server صفحه 72 این لینک را به دقت مطالعه کنید:
http://barnamenevis.org/forum/showthread.php?t=106494 (http://barnamenevis.org/forum/showthread.php?t=106494)
صفحه 72 موجود نيست فقط 3 صفحه دارد