0

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

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

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

روش اول - استفاده از ADODB.Command:
شي ADODB.Command كه ما ازش يه متغير به اسم Cmd ساختيم يك خاصيت داره به اسم Parameters. اين خاصيت به اين صورت استفاده ميشه:

کد:

        Cmd.CommandText = "Insert Into tblTest (Field1)Values(@Field1)"
Cmd.Parameters.Refresh
Cmd.Parameters.Item(0).Value = ValueMember...

دستور SQL كه واضح هست چي كار مي كنه.
@Field1: همون متغيري هستش كه قراره مقدارش درون ستون يا فيلد Field1 در جدول tblTest بانك اطلاعاتي ريخته بشه.
اما اون صفر سبز رنگ كه زيرش خط كشيده شده چيه؟ اگر دقت كرده باشيد من فقط و فقط يك متغير بيشتر ندارم. من تويه دستورات SQL مي تونم چندين و چند متغير داشته باشم (فكر كنم تا 255 تا) كه اينها همشون يه انديس دارن كه از صفر شروع ميشه. فكر كنم كه تا آخرش رو با اين توضيح متوجه شدين. براي اينكه متغيرها مقدار دهي بشن بايد با انديس هاشون جداگانه مقداردهي بشن. يعني:

کد:
         Cmd.CommandText = "Insert Into tblTest (Field1,Field2,Field3)Values(@Field1,@Field2,@Field3)"
         Cmd.Parameters.Refresh
         Cmd.Parameters.Item(0).Value = ValueMember...
Cmd.Parameters.Item(1).Value = ValueMember...
Cmd.Parameters.Item(2).Value = ValueMember...

به همين راحتي. حالا با Execute كردن Command مي تونيد Recordset رو پر كنيد.

اسلام پیروز است
 
چهارشنبه 6 بهمن 1389  4:56 PM
تشکرات از این پست
paysokhan
paysokhan
کاربر نقره ای
تاریخ عضویت : آبان 1388 
تعداد پست ها : 364
محل سکونت : فارس

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

روش دوم - استفاده از ADODB.Command:

با استفاده از شي ADODB.Command مي شه به روش ديگه اي يه Parameters رو به دستور SQL پاس داد:

کد:
        Cmd.CommandText = "Insert Into tblTest (Field1,Field2)Values(@Field1,@Field2)"
        Cmd.Parameters.Refresh
        Cmd.Parameters("@Field1").Value = ValueMember...

در اين روش بعد از متد Cmd.Parameters بايد نام Parameters مورد نظر رو به صورت رشته اي بنويسيم و با خاصيت Value مقدار دهي كنيم. در واقع نحوه استفاده از دستور به اين صورت هستش:

کد:
Cmd.parameters ("ParametersName").Value = Value

كد واضح هستش فكر نمي كنم توضيح اضافه ديگه اي رو بخواد.

کد:
        Cmd.CommandText = "Insert Into tblTest (Field1,Field2)Values(@Field1,@Field2)"
        Cmd.Parameters.Refresh
        Cmd.Parameters("@Field1").Value = ValueMember...
   Cmd.Parameters("@Field2").Value = ValueMember...
.
.
.

 

اسلام پیروز است
 
چهارشنبه 6 بهمن 1389  4:56 PM
تشکرات از این پست
paysokhan
paysokhan
کاربر نقره ای
تاریخ عضویت : آبان 1388 
تعداد پست ها : 364
محل سکونت : فارس

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

روش سوم- استفاده از 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))

 

اسلام پیروز است
 
چهارشنبه 6 بهمن 1389  4:57 PM
تشکرات از این پست
دسترسی سریع به انجمن ها