Jensen
Giriş Tarihi : 30/03/09 Yer : İstanbul Yaş : 34 Mesajlar : 14824 Rep Puanı : 14472 Rep Gücü : 6503
| Konu: SQL 2005 VE 2008 İnventory Editör Çalıştırma Perş. Haz. 10, 2010 1:27 pm | |
| Eğer 2005 veya 2008 kullanıosanız böyle bi problem yaşıosunuzdur cok kişiden duydum aslında olay basit matrix1536 verdi prosedürler 2000 uyumlu* yani
[/b] Alıntı: | *int(4) smallint int(2)[/b] | Bunlar 2008 de "int" olarak kabul edilir değişiceğiniz prosedürler..
Alıntı: | *--bu procedure Maktiris1536 tarafından eylenmiştir.. Necro Tarafından 2005 ve 2008 içinde eylenmiş:O
CREATE procedure itemleri_bul @StrUserID varchar(30) AS DECLARE @length int, -- stritem uzunluğu @i int, -- item'in stritem deki yeri @dwid int, @dur int, @duar int, @StackSize1 int, @Sira int, @Row int, @name varchar(100), @extname varchar(100), @ext int
set @i = 14*0+1 set @length = 401
select @row=count(*) from userdata where struserid=@StrUserID
delete from itemler where struserid=@StrUserID
if @row>0 begin
WHILE @i < @length Begin
Select @dwid=cast(cast(substring(cast(substring(strItem, @i,4) as varbinary(4)), 4, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 3, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 2, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 1, 1) as varbinary(4)) as int), @dur = cast(cast(cast( substring(strItem, @i+5, 1) as varbinary(1))+cast(substring(strItem, @i+4, 1) as varbinary(1)) as varbinary(2)) as int), @StackSize1 = cast(cast(cast( substring(strItem, @i+7, 1) as varbinary(1))+cast(substring(strItem, @i+6, 1) as varbinary(1)) as varbinary(2)) as int), @StrUserID = strUserID From UserData Where strUserID = @StrUserID
insert into itemler (dwid,stacksize,durability,struserid,sira,itembasicname,extname) values(@dwid,@stacksize1,@dur,@StrUserID,(@i-1) / 8,@extname,@name )
set @i=@i+8
end end
GO
*[b]##################################
Alıntı: | *[b]--bu procedure Maktiris1536 tarafından eylenmiştir.. --Bu zaten eyliymiş :O
CREATE procedure itemleri_encode @StrUserID varchar(30) AS DECLARE @length int, -- stritem uzunluğu @row int, -- yerine göre deişior. @i int, -- item'in stritem deki yeri @dwid int, -- dwid @pos int, @dur int, @dur1 int, @ext int, @StackSize1 int, @strName varchar(30), @strExtName varchar(30), @Cdwid varbinary(4), @cdur varchar(2), @Source tinyint, @NEWdwid int, @StackSize int, @cstack varchar(2), @sira int
set @sira=0 set @i = 14*0 set @length = 401
select @row=count( * ) from userdata where struserid=@StrUserID
if @row>0 begin
Select @dwid=dwid, @dur = durability, @StackSize1 = stacksize, @StrUserID = strUserID From itemler Where strUserID = @StrUserID and sira=@sira
Set @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) + Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1) Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2)) Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))
update UserData set strItem = cast(cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8)) as binary(400)) where strUserID = @strUserID
set @i=@i+8 set @sira=@sira+1
WHILE @sira < 50 Begin
Select @dwid=dwid, @dur = durability, @StackSize1 = stacksize, @StrUserID = strUserID From itemler Where strUserID = @StrUserID and sira=@sira
Set @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) + Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1) Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2)) Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))
update UserData set strItem = cast( substring(strItem, 1, @i) + cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8)) + substring(strItem, @i+8, 401-@i) as binary(400)) where strUserID = @strUserID
set @i=@i+8 set @sira=@sira+1
end end delete from itemler
GO[/b] | [/b][/b][/b][/b] |
| |
|