PDA

View Full Version : مشکل در کار با رشته



Happy_davood
جمعه 13 بهمن 1385, 10:08 صبح
خوب فرض کنید من یه فیلد رشته ای دارم و می خوام داخل یک SP یه کوئری بسازم و اجرا کنم مثل :


SELECT * FROM Users WHERE UserName = 'DAVOOD'

حالا فرض کنید مقدار DAVOOD داخل یه متغیر رشته باشه و من بخوام Query رو بصورت یک رشته درست کنم و بعد اجراش کنم :



DECLARE @name AS VARCHAR(16)
SET name = 'DAVOOD'
DECLARE @QueryString AS VARCHAR(128)
SET @QueryString = 'SELECT * FROM Users WHERE UserName = '

EXEC @QueryString + @name
حاصل عبارات بالا میشه :


SELECT * FROM User WHERE UserName = DAVOOD

خوب حالا تکلیف کاراکتر ' در دو طرف DAVOOD چیه ؟
خلاصه بگم چه طوری میشه کاراکتر ' وارد رشته بشه ؟

ali_kolahdoozan
جمعه 13 بهمن 1385, 10:17 صبح
select * from tablename where user='"+davod+"'

zerobit-ltd
جمعه 13 بهمن 1385, 10:29 صبح
هر جا که می خوای ' بذاری، دو تا ' بذار.
یعنی کدت باید اینجوری باشه:


DECLARE @name AS VARCHAR(16)
SET name = 'DAVOOD'
DECLARE @QueryString AS VARCHAR(128)
SET @QueryString = 'SELECT * FROM Users WHERE UserName = ''' + @name + ''''
EXEC @QueryString

someCoder
جمعه 13 بهمن 1385, 10:32 صبح
البته SQL-Injection رو فراموش نکنی!

zerobit-ltd
جمعه 13 بهمن 1385, 10:44 صبح
البته SQL-Injection رو فراموش نکنی!
دقیقا :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق:

Happy_davood
جمعه 13 بهمن 1385, 16:18 عصر
دستتون درد نکنه .

AminSobati
جمعه 13 بهمن 1385, 23:49 عصر
فرض رو بر این میگذاریم که داوود جان کاملا مطلع هستند که این کار رو میشه با SP انجام داد و بر اساس دلیل موجه رفتن سراغ Dyna TSQL!