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

نام تاپیک: UPDATETEXT

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977

    UPDATETEXT

    برای آپدیت نمودن داده های از تایپ ntext یک نمونه می خواستم:
    "UPDATETEXT   tblStudentInfo  Karname @karname WHERE        

  2. #2
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    @karname یک پارامتر SQL است که در اپلیکیشن ایجاد شده است. ::نوشتن::

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    نمونه :roll: :confy2:

  4. #4
    دوست عزیزم،
    برای استفاده از دستور UPDATETEXT یک جدول ایجاد میکنیم با دو رکورد نمونه:
    CREATE TABLE Test(
    C1 INT,
    C2 nTEXT)

    INSERT Test VALUES (1,'This is a sample text.')
    INSERT Test VALUES (2,'Another sample text!')

    دستور UPDATETEXT هم میتونه یک رشته کاراکتر به داخل متن اضافه(Insert) کنه و هم میتونه یک رشته رو با رشته جدیدی که میدین تعویض کنه(Update). کلا 5 پارامتر نیاز هست برای این دستور:
    1) کدام فیلد برای Update مد نظر ماست
    2) مقدار اون فیلد در چه آدرسی در فایل قرار گرفته
    3) عمل Update از کاراکتر چندم شروع میشه
    4) تعداد کاراکترهایی که باید حذف بشه (در صورت Update! اگر فقط قراره چیزی اضافه بشه، این مقدار صفر خواهد بود)
    5) مقدار جدید به جای مقدار قدیمی (یا مقداری که باید Insert بشه)

    اول توسط TEXTPTR باید پارامتر دوم رو تامین و در یک متغیر ذخیره کنیم. به عنوان مثال، جمله اولی که وارد جدول کردیم رو میخوایم به این شکل در بیاریم: This is not a sample text.
    این کار Insert محسوب میشه، نه Update:
    DECLARE @MyPointer BINARY(16)
    SELECT @MyPointer = TEXTPTR(C2) FROM Test WHERE C1=1
    UPDATETEXT Test.C2 @MyPointer 8 0 'not '
    SELECT * FROM Test


    عدد 8 به این معنیه که بعد از کاراکتر هشتم این کار انجام بشه و مقدار صفر یعنی قرار نیست هیچ کاراکتری حذف بشه. اما اگر بخواهیم Update انجام بدین و جمله بشه به حالت اول:

    DECLARE @MyPointer BINARY(16)
    SELECT @MyPointer = TEXTPTR(C2) FROM Test WHERE C1=1
    UPDATETEXT Test.C2 @MyPointer 8 4 ''
    SELECT * FROM Test

    اینجا بعد از کاراکتر هشتم، 4 کاراکتر رو با '' یعنی با هیچ عوض کردیم.
    به عنوان مثال دیگه، اگر بخواهیم is رو با was عوض کنیم(Update):

    DECLARE @MyPointer BINARY(16)
    SELECT @MyPointer = TEXTPTR(C2) FROM Test WHERE C1=1
    UPDATETEXT Test.C2 @MyPointer 5 2 'was'
    SELECT * FROM Test

    یعنی از کاراکتر 5، دو کاراکتر رو حذف کن و به جای اون was قرار بده.
    موفق باشید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    بازنویسی تقریبی:
    DECLARE @MyPointer BINARY(16) 
    SELECT @MyPointer = TEXTPTR(karname) FROM test WHERE
    c1=1
    UPDATETEXT test.karname @MyPointer 8 0 'not'
    select * from test


    Server: Msg 7133, Level 16, State 2, Line 4
    NULL textptr (text, ntext, or image pointer) passed to UpdateText function.

    (2 row(s) affected)

  6. #6
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    کارنامه را هم در دیتابیس ایجاد کرده و مقدار دادم! :sorry:

  7. #7
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    DECLARE @MyPointer BINARY(16) 
    SELECT @MyPointer = TEXTPTR(karname) FROM test WHERE
    c1=1
    UPDATETEXT test.karname @MyPointer 1 0 'not'
    select * from test

    1
    This was a sample text. anotnot 2
    Another sample text! d

  8. #8
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    DECLARE @MyPointer BINARY(16) 
    SELECT @MyPointer = TEXTPTR(karname) FROM test WHERE
    c1=1
    UPDATETEXT test.karname @MyPointer 'not'
    select * from test


    Server: Msg 170, Level 15, State 1, Line 4
    Line 4: Incorrect syntax near 'not'.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    سوال:
    در صورتی که مقدار جدید یک پارامتر باشد کافی است آنرا با @ شروع کرده و نامش را بنویسیم؟
    UPDATETEXT tblStudentInfo.karname @MyPointer @karname

    در واقع کاری نداریم که از کاراکتر چندمه یا ... یک اپدیت معمولی مد نظر باشد :sunglass:

  10. #10
    دوست عزیزم،
    - در مورد خطای اول، ظاهرا مقدار MyPointer@ برابر با NULL هستش. برای اینکه اطمینان پیدا کنیم در مورد این حدس، قبل از دستور UPDATETEXT یکبار SELECT @MyPointer رو بنویسید و موقع اجرا ببینین آیا واقعا NULL نشون میده؟
    - در مورد خطای شماره 170، شما دو پارامتر رو جا انداختین!
    - برای Update معمولی، از همون دستور Update هم میتونین استفاده کنین

  11. #11
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    برای Update معمولی، از همون دستور Update هم میتونین استفاده کنین
    پیغام خطا می گیرد!
    من که اصلا دوست نداشتم :mad: از این updatetext استفاده کنم.
    اما ظاهرا الزامی هست برای آپدیت فیلدهای از جنس nText

  12. #12
    من با Update مشکلی نداشتم، ولی به هر حال آیا مشکل شما با UPDATETEXT حل شد؟

  13. #13
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    با تشکر من هم با موفقیت تونستم آپدیت را انجام بدهم :<:

  14. #14

  15. #15
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    راستی یه آف تاپیک :? هم ما بزنیم تا سهممون را دیگران نگرفته اند. :mrgreen:
    جناب ثباتی ما خیلی مخلصیم و از اینهمه بذل توجه و وقت گزاردن کسی که تا کنون ندیده امش :reading:
    بسی سپاسگذار :D
    اگر در هر تاپیکی این مهم را ابراز نمی داریم :kaf: حمل بر بی ادبی نفرموده و
    به این رویه بس گرانقدر ادامه دهید :embr: :sunglass:
    مخلص اساتید و مدیران سایت برنامه نویس :sunglass:

  16. #16
    فرامرز جان،
    شما و همه دوستان بیش از حد لطف دارید، حتی اگر این موضوع رو مطرح نمیکردین، ما باز هم فکر بدی نمیکردیم! :)
    امیدوارم در همه کارهاتون موفق باشین دوست من

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

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