نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل عدم اجازه نوشتن داده در بانک (vb6,sq)

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    55

    مشکل عدم اجازه نوشتن داده در بانک (vb6,sq)

    با توجه به کد زیر:

    With cnn

    ConnectionString = Adodc1.ConnectionString .
    CursorLocation = adUseClient .
    mode = adModeReadWrite .
    Open .
    End With
    Set rst = cnn.Execute ("Select * from xxxx
    rst.MoveFirst
    While Not rst.EOF
    fn = rst.Fields("date") & rst.Fields("code1
    en = Trim(fn
    rst.Fields("idcode").Value = en
    rst.Update

    sql = "insert into stdnew(idcode) values ('" + en
    Set rst = cnn.Execute(sql

    rst.MoveNext
    Wend
    Set cnn = Nothing
    Set rst = Nothing

    من میخوام درون فیلد idcode از بانکم ، رشته ای که از محاسبه چندفیلد دیگر همان رکورد بدست می اید را قرار دهم مشکل اینجاست که وقتی از دستوری که با رنگ سبز مشخص کردم استفاده میکنم errore عدم اجازه نوشتن در بانک را میده ( runtime eroore 3251- cuurent recordset does not support updating,this may be limitation of provider or of the selected locktype )
    و وقتی از دستور قرمز رنگ استفاده میکنم movenext را انجام نمیده چون میگه بانک شما close شده
    لازم به ذکر است که حتی با تغییر cursorlocation به aduseserver و mode به admodeshareexclusive باز مشکل عدم اجازه دسترسی به بانک را می دهد
    لطفا در درجه اول جاهایی که کار من می لنگد را بگویید و در درجه دوم بهترین روش برای قرار دادن یک رشته درون یک فیلد توسط loop

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    55
    یعنی واقعا کسی نیست که جواب سوال منو بدونه !!!!!!!؟

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    55
    به علت اینکه من نتونستم کدنویسی را جوری مرتب کنم که در این فروم بشه درست و از چپ به راست مشاهده کرد لذا در انتهای بعضی از خطوط برنامه بعضی از علائم از جمله پرانتزها از قلم افتاده.
    هر قسمت برنامه که متوجه نشده اید را بگویید تا توضیح دهم.
    آیا راهی هست که بشود بدون اتصال به سرور دخل و تصرف در رکوردها نمود ؟(من بعید می دونم)
    چه دستور sql را می توانیم مستقیما استفاده نماییم که حاجت بالا برآورده شود . همانطور که مشاهده می فرمایید دستوراتی که با رنگ قرمز مشخص شده ، دستور SQL می باشد ولی تنها مشکل اینجاست که فقط در یک رکورد اعمال می شود و نمی شود Movenext کرد . آیا دستوری را می شود بعد از آن قرار داد که بعد از اجرای اولین رکورد در loop به رکورد بعدی انتقال یابد و محاسبات را برای مابقی رکوردها انجام داد.

  4. #4
    دوست عزیزم کاری که شما دارین انجام میدین، به زبان شیرین TSQL چنین چیزی میشه!...

    UPDATE xxxx SET
    idcode=LTRIM(RTRIM(CAST(Date AS VARCHAR(15))+CAST(Code1 AS VARCHAR(15))))

    INSERT stdnew(idcode) SELECT idcode FROM xxxx

    من جای شما باشم اطلاعات رو نمیارم سمت کلاینت برای چند تا ویرایش Set Based و ساده

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    پست
    55
    با تشکر.
    فرض کنید در Table تعداد زیادی رکورد موجود است و شما قصد دارید ستونی بنام Idcode به آن اضافه کنید که از تلفیق چند فیلد نا همجنس همان رکورد پر شود چگونه دستور Sql فوق را درون Loop می گذارید تا در تمامی فیلد های ستون جدید این کار صورت پذیرد؟

  6. #6
    Loop نیازی نیست. دستور Update خودش رو تمام رکوردهای شما حرکت میکنه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •