الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قاعدة بيانات أخري

مغلق
بدأه egyman في 9 مايو 2005 · 11 رد · 1,214 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم لله الرحمن الرحيم

شباب بفرض أن عملي داخل قاعدة بيانات اسمها db1 و بها مجموعة من الجداول

و أريد أن أقرأ بيانات جدول داخل قاعدة بيانات أخرى db2

...

أنتظروا...

....

ليس قراءة فقط و إلا كنت عدلت فى جملة الاتصال بقاعدة البيانات

و لكن المشكلة إنى أريد أن أقوم بإضافة سجلات من الجدول داخل القاعدة db2 إلى جدولى ب db1 من خلال جمل sql و هى insert into

>>>

هل هذا ممكن أرجوا سرعة مساعدتي

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#2
اقتباس
و لكن المشكلة إنى أريد أن أقوم بإضافة سجلات من الجدول داخل القاعدة db2 إلى جدولى ب db1 من خلال جمل sql و هى insert into

توجد طريقة بفتح اتصالين و 2 recordsets ، واحد لكل قاعدة بيانات، ومن ثم تقوم بفتح الrecordset الخاص بقاعدة البيانات الأولى عبر الاستعلام، وتقوم بالقراءة منه، وكل ما تقرأ سجلاً منه تضيفة عبر الاتصال الثاني لقاعدة البيانات الثانية، مثلا:

dim cn1 as new ADODB.Connection
dim cn2 as new ADODB.Connection
dim rs1 as new ADODB.Recordset

dim TransferSQL as String

do while not rs1.EOF
   TransferSQL ="insert into tb1 values(" & str(rs!field1) & ", '" & rs!field2 & "')"
   cn2.execute(TransferSQL )
loop

انظر ردي في:

نقل بيانات من جدول الى جدول آخرSQL, بواسطة الـ VB

بالتوفيق بإذن الله.

تم تعديل هذه المشاركة بواسطة walcom في 9 مايو 2005 في 17:58

فكر بطريقة أخرى

#3

حاول ان تستخدم هذه الصيغة

 
insert into book(title,subject, Autor)
 select  titel, subject, Autor from book_old
اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#4

بسم الله الرحمن الرحيم

شكراً أخي walcom على الرد

و لكن ألا تتفق معي أن هذه الطريقة سوف تستغرق وقت طويل

فبفرض أن لدي60000 سجل

فعلى البرنامج أن يقوم بقراءة السجلات واحد واحد و فى كل مرة ينفذ جملة sql

طريقتك جميلة و لكن ألا تتفق معى

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#5

السلام عليكم ورحمة الله وبركاته

يا عم egyman

شكلك هتطفش الراجل منك بكلمة ألا تتفق معى دى (هههههه)

أفهم من كلامك أنك بتتعامل مع الـ VB.Net

مش الداتاسيت من خلال الأدابتر هتحدثهم زى ما انت عاوز؟

ولو الحكاية صعبة لأنهم قاعدتين بعاد عن بعض ما تجرب تعمل Link Server ومنه هتعمل أى DML براحتك؟

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#6

بسم الله الرحمن الرحيم

ليه بس يا أخي ...

الراجل walcom يبقى مشرفنا و محدش يقدر يزعله

بس أنا بتكلم للمصلحة العامة يعنى فكرة أستاذنا walcom ممتازة بس أنا كنت بفكر لو فى فكرة تبقى أسرع

أما بالنسبة vb.net

لا أنا بشتغل vb6

و شكراً لكم ...

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#7

الأخ egyman

اقتباس
لكن ألا تتفق معي أن هذه الطريقة سوف تستغرق وقت طويل

فبفرض أن لدي60000 سجل

فعلى البرنامج أن يقوم بقراءة السجلات واحد واحد و فى كل مرة ينفذ جملة sql

طريقتك جميلة و لكن ألا تتفق معى

فعلاً الطريقة التي ذكرتها طويلة في حال إدخال عدد كبير من السجلات، وأرى الطريقة التي ذكرها الأخ khwlani أفضل، وتكون أفضل لو وضعت ضمن Stored procedure.

بالتوفيق بإذن الله :)

اقتباس
الراجل walcom يبقى مشرفنا و محدش يقدر يزعله

ليه الزعل :)

عادي جدا وبيحصل أكتر من كده :blink:

:lol: :D

فكر بطريقة أخرى

#8

بسم الله الرحمن الرحيم

أولاً : شكراً أخي walcom على الرد

ثانياً : على رأي abulyaman انت مشرفنا و محدش يقدر يزعلك ... و أنا هزعلك ليه بس

ثالثاُ : الطريقة التى كتبها khwlani صحيحة و لكن فى حالة كان الجدولين داخل قاعدة بيانات واحدة

و لكن سؤالى هو ماذا لو كان الجدولين فى قاعدتين للبيانات... و شكراً

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#9

السلام عليكم ورحمة الله وبركاته

أخى egyman

معلش لو كان كلامى ضايقك - ما كانش قصدى والله - أنا حاولت ألطف المشاركة بخفة ظل لكن يظهر أن الظل كان ثقيل

وبخصوص مسألتك

أعتقد والله أعلم أن حل مشكلتك فى أنك تعمل لينك سيرفر Link Server

والأستاذ طارق له مشاركة بتبين طريقة عملها فى هذا الرابط

/index.php?showtopic=49831

ولكن أريد أن أسألك قبل ذلك

هل حاولت كتابة اسم الجدول بأجزائه الأربعة ServerName.Owner.DataBaseName.TableName ؟

قد يكون فاتك جزء من هذا فلم تصل لما تريد

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#10

طيب معلش .... (بس متعملهاش تاني) ....

..

و الله حكايت الاسم الرباعي دي شكلها فكرة ممتازة .. سأجربها اليوم و أقولك على النتيجة

بس على فكرة هى بتكتب مثلاً كده :

LOCAL.DBO.ACC.BALANCE

و لا إذاي

و شكراً

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#11

بسم الله الرحمن الرحيم

أولاً شكراً لك أخي abulyman على الفكرة

بس لسه مش عارف أجربها

انت قولتلي نادى على الجدول بإسمه الرباعي

أنا السيرفر عنى اسمه local

المالك dbo

قاعدة البيانات acc

الجدول main

فناديت عليه

local.dbo.acc.main

فتظهر لى رسالة معناها انه لا يجد سيرفر اسمه local

فقمت بتبديل كلمة local با localhost

و لكن النتيجة واحدة

...

المســـــــــــــــــــــــــــــــــــاعدة يا شباب

و شكراً

سبحان الله و بحمده سبحان الله العظيم

أبو كريم و مازن و نور

vb.net - c# - asp.net - oracle - sql server

manager@tm-center.com

00966508268649

#12

السلام عليكم ورحمة الله وبركاته

اقتباس
طيب معلش .... (بس متعملهاش تاني) ....

دا كان جد ولا هزار؟

بخصوص سؤالك:

ما أنتاش محتاج تذكر الأسماء المعروفة فى المسار الحالى يعنى اسم قاعدة البيانات والجدول إن شاء الله كافى

بس اكتب acc.main واسم قاعدة البيانات التانية مثلا acc.db2

وأكيد السيرفر بتاعك له اسم لأن local دا اسم معناه الجهاز الحالى وطبعا اسمه بيختلف ما بين كل الأجهزة المتصله على السيرفر بتاعك فلو أشرت إليه كل واحد هيتصل بجهازه هو مش السيرفر بتاعك

وربنا ييسر لك أمورك

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

هذا الموضوع مغلق.

مواضيع مشابهة