منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
أستفسـار نسخ جدول لجدول - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : أستفسـار نسخ جدول لجدول (/showthread.php?tid=21768)



أستفسـار نسخ جدول لجدول - طـلال - 19-09-17

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

عندي جدول Tabel1 يتم تخزين البيانات داخله  ويوجد به  شـرطين  لبعض الحقول 

عندي جدول أخر Tabel 2  نفس حقول Tabel1  بالضبط 

محتاج طريقه تبحث في كل بيانات الجدول رقم (1) في حال تحقق الشـرطين أنقل جميع السجلات التي تم التحقق من شرطها إلى جدول (2)
وقم بحذفها من جدول (1)


فماهي الطريقه الصحيحه والسليمه للقيام بذالك ..!!

دمتم بود..


RE: أستفسـار نسخ جدول لجدول - أبو نوره - 19-09-17

مرحبا اخى

اعتقد بدلا من من عمل جدول آخر ان تعمل عمود (نعم/لا) تخصصه لوضع علامه True وكانك نقلته
بحيث في الاستلام تضع في الاعتبار هذا العمود


RE: أستفسـار نسخ جدول لجدول - طـلال - 20-09-17

شكراً أبو نوره 
 الجدول عليه عمليات وهو يبحث بكل الجدول عن ثلاث حالات  الحاله الرابعه لا أحتاجها ومعناتها منتهيه  
نعم - لا 
لا- نعم 
نعم - نعم 
لا - لا 

محتاج أجعل نعم - نعم في جدول مستقل 
وسلامتك


RE: أستفسـار نسخ جدول لجدول - عبقرينو - 20-09-17

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


RE: أستفسـار نسخ جدول لجدول - HASAN6.0 - 20-09-17

ارفق تركيبه الجدول


RE: أستفسـار نسخ جدول لجدول - طـلال - 20-09-17

id - int 
Code-Nvarchar
Stutes1=Bit
Stutes2=Bit

تركيبه شبيهه للجدول code - id  لا تتكرر 

مشكلتي يا أخوان هي الأستعلام من جدول واحد وهذا الجدول فيه ضغط بيانات  بشكل كبير 
أنا طبقت الطريقه هاذي عشـان أبعد عن بطئ التعامل مع البيانات

(20-09-17, 11:14 AM)عبقرينو كتب : السـلام عليكم ورحمة الله وبركاته
الأخ/ طلال تحية خاصة ...
أنا من رأي أبو نورة في أن تكتفي بجدول واحد وتنشأ كيوري أو استعلام بدل الجدول الثاني وتضع عليه شرط ان يظهر الأعمدة التي تحتوي على الشرط المطلوب فقط ..
وكنت أتمنى لو وضعت مرفق لجداولك.. وشكرا

صعب جداً تتعامل مع جدول كبيـر وفيه ضغط بيانات عندما تحاول أن تصفي جدول حسب الشـرط معنـاته سيبحث من أول سجل إلى أخر سجل 
وهذا مرهق لنظام وسيصاب بعد فتره ببطئ في جلب البيانات 

هي أسلم حل هو أن أصنع جدول مثيل للجدول الأساسي بحيث أجعله مثل الأرشيف وبناء على الأستعلامات أوزعها بين الجداول بين الشـروط القائمه والشـروط المنتهيه 
وبكذا هربت بالجدول الأساسي عن البطئ لكونه هو المسؤل عن الصفحه


RE: أستفسـار نسخ جدول لجدول - أبو نوره - 20-09-17

مرحبا اخى

في برامج استخدمت معها جدول في الوف الاسطر ولم الاحظ البطئ او الضغط الذي تتحدث عنه
فاسلوب محرك قاعدة البيانات لا يستخدم For Next مثل البرمجه العاديه، ولكن له طرقه باحضار الاسطر المستعلم عنها مهما كان العدد، بالاضافه لميزه الفهرسه في قاعدة البيانات التي تسرع الاستعلام،

ضع مشروعك في المرفقات


RE: أستفسـار نسخ جدول لجدول - ابو ليلى - 20-09-17

السلام عليكم و رحمة الله و بركاته
اخي الكريم , اذا كنت تتعامل مع SQL Server
فالافضل عمل اجراء مخزن يقوم بعملية النقل للصفوف التي تريدها وفق الشرط المحدد من الجدول الاول الى الجدول الثاني.
ثم تقوم بعملية الحذف للصفوف في الجدول الاول وفق نفس الشرط .
ثم يمكنك استدعاء الاجراء من داخل برنامجك .
العملية على السيرفر تجري بسرعة ويسر.

شكل الاجراء:
PHP كود :
Create proc TransferData

    
As

    
INSERT Into Tbl2
                            SELECT 
*
                             
 FROM Tbl1
                              Where Stutes1
='True' And Stutes2='True'
    
Delete From Tbl1
                              Where Stutes1
='True' And Stutes2='True' 

اما استدعاء الاجراء يمكنك تخصيص دالة تقوم بالوظيفة مثل هذه الدالة مع تغيير ما يلزم
PHP كود :
   Public Sub ExcuteCommand(Stored_Prosedure As String)
 
       Dim SqlCmd As New SqlCommand
        SqlCmd
.CommandType CommandType.StoredProcedure
        SqlCmd
.CommandText Stored_Prosedure
        SqlCmd
.Connection SqlCon

        SqlCmd
.ExecuteNonQuery()
 
   End Sub 
اما اذا كنت تنوي النقل وفق شروط محددة (تقوم بتحديدها في قلب البرنامج) يمكنك تغيير الاجراء السابق ليصبح معتمداً على البارمترات , كما يلي
PHP كود :
Create proc TransferData
 
@Stutes1 Bit
,@Stutes2 Bit

    
As

    
INSERT Into Tbl2
                            SELECT 
*
                             
 FROM Tbl1
                              Where Stutes1
=@Stutes1 And Stutes2=@Stutes2
    Delete From Tbl1
                              Where Stutes1
=@Stutes2 And Stutes2=@Stutes2 
وشكل الدالة المسؤولة عن الاستدعاء كما يلي :
PHP كود :
       Public Sub ExcuteCommand(Stored_Prosedure As Stringparams As List(Of SqlParameter))
 
           Dim SqlCmd As New SqlCommand
            SqlCmd
.CommandType CommandType.StoredProcedure
            SqlCmd
.CommandText Stored_Prosedure
            SqlCmd
.Connection SqlCon

            If Not params Is Nothing Then
                For Each Param 
As SqlParameter In params
                    SqlCmd
.Parameters.Add(Param)
 
               Next
            End 
If
 
           SqlCmd.ExecuteNonQuery()
 
       End Sub 

الدالتان السابقتان عامتان يمكنك استدعائهم مع اي اجراء مخزن , فقط غير ما يلزم
مثال للاستدعاء:
PHP كود :
       Public Sub TransferData()
 
           Dim parms As New List(Of SqlParameter)
 
           parms.Add(New SqlParameter("@Stutes1"SqlDbType.BitWith {.Value True})
 
           parms.Add(New SqlParameter("@Stutes2"SqlDbType.BitWith {.Value True})

 
           SqlCon.Open
            Dal
.ExcuteCommand("TransferData"parms)
 
           SqlCon.Close
        End Sub 
بالتوفيق .



RE: أستفسـار نسخ جدول لجدول - طـلال - 21-09-17

جزاكم الله خيـر