روش سوم- استفاده از ADODB.parameter:
اين روش درواقع يه جورهايي به دو روش قبلي مربوط ميشه يعني ADODB.Command اما به
طور غير مستقيم. يكم اين روش نياز به دقت داره وگرنه سخت نيست. اول بايد ببينيم كه دستور SQL مورد نظر ما چند تا Parameters نياز داره و به همون تعداد متغير از نوع ADODB.Parameter تعريف مي كنيم. به عنوان مثال من مي خوام يك دستور Update رو بنويسم و اين دستور من حداقل دو تا parameters نياز داره:
حالا دستور مورد نظر رو مي نويسيم. مثلاً:
Public Parameters1 As ADODB.Parameter
Public Parameters2 As ADODB.Parameter
حالا بايد parameters رو به متغيرمون Set كنيم:
Cmd.CommandType = adCmdText
Cmd.CommandText = "Update tblTest SET Field1=@Field1 WHERE Field2=@Field2"
حالا دوباره بر مي گرديم سراغ ADODB.Command و از خاصيت Parameters اون دوباره استفاده مي كنيم با اين تفوت كه از متد Append اون استفاده مي كنيم:
Set Parameters1 = Cmd.CreateParameter("@Field1", adInteger, adParamInput)
Set Parameters2 = Cmd.CreateParameter("@Field2", adInteger, adParamInput)
مقداردهي Parameters هاي ساخته شده:
Cmd.Parameters.Append Parameters1
Cmd.Parameters.Append Parameters2
اما حالا نوبت به مقدار دهي Parameters ميشه. از تابع Array كه همه باهاش آشنايي دارن استفاده كنيم.
به طور مستقيم اينجا مقادير رو وارد Cmd.Execute مي كنيم. درواقع شكل كلي دستور به اين صورت هستش:
Set Rst = Cmd.Execute(, Array(Value1, Value2))
كه هر سه آرگومان اختياري هستن.
Cmd.Execute (RecordAffected,Parameters,Option As Long=-1)
Cmd.CommandType = adCmdText
Cmd.CommandText = "Update tblTest SET Field1=@Field1 WHERE Field2=@Field2"
Set Parameters1 = Cmd.CreateParameter("@Age", adInteger, adParamInput)
Cmd.Parameters.Append Parameters1
Set Parameters2 = Cmd.CreateParameter("@Code", adInteger, adParamInput)
Cmd.Parameters.Append Parameters2
.
.
.
Set Rst = Cmd.Execute(, Array(Value1, Value2))





پاسخ با نقل قول
