0

ايجاد Parameters - روش اول {استفاده از ADODB.Command}

 
paysokhan
paysokhan
کاربر نقره ای
تاریخ عضویت : آبان 1388 
تعداد پست ها : 364
محل سکونت : فارس

ايجاد Parameters - روش سوم{استفاده از ADODB.Parameter}
چهارشنبه 6 بهمن 1389  4:57 PM

روش سوم- استفاده از ADODB.parameter:
اين روش درواقع يه جورهايي به دو روش قبلي مربوط ميشه يعني ADODB.Command اما به
طور غير مستقيم. يكم اين روش نياز به دقت داره وگرنه سخت نيست. اول بايد ببينيم كه دستور SQL مورد نظر ما چند تا Parameters نياز داره و به همون تعداد متغير از نوع ADODB.Parameter تعريف مي كنيم. به عنوان مثال من مي خوام يك دستور Update رو بنويسم و اين دستور من حداقل دو تا parameters نياز داره:

کد:
    Public Parameters1 As ADODB.Parameter
  Public Parameters2 As ADODB.Parameter

حالا دستور مورد نظر رو مي نويسيم. مثلاً:

کد:
        Cmd.CommandType = adCmdText
        Cmd.CommandText = "Update tblTest SET Field1=@Field1 WHERE Field2=@Field2"

حالا بايد parameters رو به متغيرمون Set كنيم:

کد:
        Set Parameters1 = Cmd.CreateParameter("@Field1", adInteger, adParamInput)
        Set Parameters2 = Cmd.CreateParameter("@Field2", adInteger, adParamInput)

حالا دوباره بر مي گرديم سراغ ADODB.Command و از خاصيت Parameters اون دوباره استفاده مي كنيم با اين تفوت كه از متد Append اون استفاده مي كنيم:

کد:
        Cmd.Parameters.Append Parameters1
        Cmd.Parameters.Append Parameters2

مقداردهي Parameters هاي ساخته شده:
اما حالا نوبت به مقدار دهي Parameters ميشه. از تابع Array كه همه باهاش آشنايي دارن استفاده كنيم.

کد:
        Set Rst = Cmd.Execute(, Array(Value1, Value2))

به طور مستقيم اينجا مقادير رو وارد Cmd.Execute مي كنيم. درواقع شكل كلي دستور به اين صورت هستش:

کد:
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))

 

اسلام پیروز است
 
تشکرات از این پست
دسترسی سریع به انجمن ها