20-09-17, 10:43 PM
السلام عليكم و رحمة الله و بركاته
اخي الكريم , اذا كنت تتعامل مع SQL Server
فالافضل عمل اجراء مخزن يقوم بعملية النقل للصفوف التي تريدها وفق الشرط المحدد من الجدول الاول الى الجدول الثاني.
ثم تقوم بعملية الحذف للصفوف في الجدول الاول وفق نفس الشرط .
ثم يمكنك استدعاء الاجراء من داخل برنامجك .
العملية على السيرفر تجري بسرعة ويسر.
شكل الاجراء:
اما استدعاء الاجراء يمكنك تخصيص دالة تقوم بالوظيفة مثل هذه الدالة مع تغيير ما يلزم
اما اذا كنت تنوي النقل وفق شروط محددة (تقوم بتحديدها في قلب البرنامج) يمكنك تغيير الاجراء السابق ليصبح معتمداً على البارمترات , كما يلي
وشكل الدالة المسؤولة عن الاستدعاء كما يلي :
الدالتان السابقتان عامتان يمكنك استدعائهم مع اي اجراء مخزن , فقط غير ما يلزم
مثال للاستدعاء:
اخي الكريم , اذا كنت تتعامل مع 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 String, params 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.Bit) With {.Value = True})
parms.Add(New SqlParameter("@Stutes2", SqlDbType.Bit) With {.Value = True})
SqlCon.Open
Dal.ExcuteCommand("TransferData", parms)
SqlCon.Close
End Sub
بالتوفيق .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


