metilgoli
چهارشنبه 08 فروردین 1386, 15:01 عصر
با سلام و تبریک سال نو. من فیلدی از نوع Binary بنام Flag در یکی از جداولم دارم که میخواستم برای پردازش بیتهای آن به جای استفاده از DLL از StoredProcedures استفاده کنم. به این منظور تا این حد پیش رفتم که متوجه شدم TSQL آرایه ندارد و بصورت زیر عمل نمودم:
CREATE PROC myOwner.CAL
@FlagList varchar(500)
AS
BEGIN
حال برای انتصاب مقادیر به متغیرها هم به این صورت عمل نمودم:
DECLARE @Flag1 bit,@Flag2 bit,@Flag3 bit,@Flag4 bit,@Flag5 bit
SET @Flag1 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag2 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag3 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag4 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag5 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
این راه از نظر برنامه نویسی در سطح خیلی پایینی قرار دارد. ایده ای جدید برای این کار میخواستم. با تشکر
CREATE PROC myOwner.CAL
@FlagList varchar(500)
AS
BEGIN
حال برای انتصاب مقادیر به متغیرها هم به این صورت عمل نمودم:
DECLARE @Flag1 bit,@Flag2 bit,@Flag3 bit,@Flag4 bit,@Flag5 bit
SET @Flag1 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag2 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag3 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag4 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
SET @Flag5 = LEFT(@FlagList,1)
SET @FlagList = RIGHT(@FlagList, LEN(@FlagList) - 1)
این راه از نظر برنامه نویسی در سطح خیلی پایینی قرار دارد. ایده ای جدید برای این کار میخواستم. با تشکر