Reklam
USE [KO_DATABASE_SERVER_001]
GO
/****** Object: StoredProcedure [dbo].[VIP_WAREHOUSE_Coz] Script Date: 5.12.2024 23:36:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[VIP_WAREHOUSE_Coz]
@strAccountID NVARCHAR(50)
AS
BEGIN
DECLARE @dwid INT,
@dur INT,
@stacksize1 INT,
@Sira INT,
@Time DATETIME,
@Serial BIGINT;
-- Çözümleme için geçici bir değişken ve başlangıç pozisyonu
DECLARE @i INT = 1,
@length INT;
SELECT @length = DATALENGTH(VIPWarehouseData)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Eğer kullanıcı yoksa işlem sonlanır
IF @length IS NULL
BEGIN
PRINT 'Kullanıcı bulunamadı.';
RETURN;
END
WHILE @i <= @length
BEGIN
SELECT
@dwid = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 4, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 3, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 2, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 1, 1)
AS INT),
@dur = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 2, 1)
AS SMALLINT),
@stacksize1 = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 2, 1)
AS SMALLINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Zaman ve serial çözümleme
SELECT
@Time = CAST(SUBSTRING(CAST(VIPWarehouseDataTime AS VARBINARY), @i, 8) AS DATETIME),
@Serial = CAST(SUBSTRING(CAST(strSerial AS VARBINARY), @i, 8) AS BIGINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
PRINT 'Eşya ID: ' + CAST(@dwid AS NVARCHAR) +
', Durability: ' + CAST(@dur AS NVARCHAR) +
', Miktar: ' + CAST(@stacksize1 AS NVARCHAR) +
--', Zaman: ' + CAST(@Time AS NVARCHAR) +
', Seri: ' + CAST(@Serial AS NVARCHAR);
-- Bir sonraki eşya için adım
SET @i = @i + 8;
END
END
USE [KO_DATABASE_SERVER_001]
GO
ALTER PROCEDURE [dbo].[VIP_WAREHOUSE_Coz]
@strAccountID NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @dwid INT,
@dur INT,
@stacksize1 INT,
@ItemPos INT = 0, -- Slot ID başlangıç noktası
@Time DATETIME,
@Serial BIGINT,
@ItemName NVARCHAR(100);
-- Çözümleme için geçici bir değişken ve başlangıç pozisyonu
DECLARE @i INT = 1,
@length INT;
-- VIPWarehouseData uzunluğunu al
SELECT @length = DATALENGTH(VIPWarehouseData)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Eğer kullanıcı yoksa işlem sonlanır
IF @length IS NULL
BEGIN
PRINT 'Kullanıcı...
Esya ID: 389072000, Durability: 162, Miktar: 152, Seri: 3891170611368237057
Esya ID: 389071000, Durability: 189, Miktar: 232, Seri: 5332317028928395265
Esya ID: 810305000, Durability: 1, Miktar: 0, Seri: 1873546983206754305
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 48, Seri: 0
Esya ID: 379006000, Durability: 200, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 240, Seri: 0
Esya ID: 800022000, Durability: 1, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 112, Seri: 0
Esya ID: 810950000, Durability: 24, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 104, Seri: 0
Esya ID: 610001000, Durability: 1, Miktar: 88, Seri: 0
Esya ID: 389191000, Durability: 8, Miktar: 168, Seri: 0
Esya ID: 399129000, Durability: 10, Miktar: 192, Seri: 0
Esya ID: 399128000, Durability: 10, Miktar: 208, Seri: 0
Esya ID: 700002000, Durability: 1, Miktar: 152, Seri: 0
Esya ID: 800079000, Durability: 1, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 144, Seri: 0
Esya ID: 379258000, Durability: 1, Miktar: 144, Seri: 0
Esya ID: 508122000, Durability: 1, Miktar: 152, Seri: 0
Esya ID: 800015000, Durability: 1, Miktar: 176, Seri: 0
Esya ID: 800014000, Durability: 1, Miktar: 200, Seri: 0
Esya ID: 800077000, Durability: 1, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
TEŞEKKÜR EDERİM EKSİKLERİ GÖRDÜM DÜZETEBİLİRİM İNŞALLAHKod:Esya ID: 389072000, Durability: 162, Miktar: 152, Seri: 3891170611368237057 Esya ID: 389071000, Durability: 189, Miktar: 232, Seri: 5332317028928395265 Esya ID: 810305000, Durability: 1, Miktar: 0, Seri: 1873546983206754305 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 48, Seri: 0 Esya ID: 379006000, Durability: 200, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 240, Seri: 0 Esya ID: 800022000, Durability: 1, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 112, Seri: 0 Esya ID: 810950000, Durability: 24, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 104, Seri: 0 Esya ID: 610001000, Durability: 1, Miktar: 88, Seri: 0 Esya ID: 389191000, Durability: 8, Miktar: 168, Seri: 0 Esya ID: 399129000, Durability: 10, Miktar: 192, Seri: 0 Esya ID: 399128000, Durability: 10, Miktar: 208, Seri: 0 Esya ID: 700002000, Durability: 1, Miktar: 152, Seri: 0 Esya ID: 800079000, Durability: 1, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 144, Seri: 0 Esya ID: 379258000, Durability: 1, Miktar: 144, Seri: 0 Esya ID: 508122000, Durability: 1, Miktar: 152, Seri: 0 Esya ID: 800015000, Durability: 1, Miktar: 176, Seri: 0 Esya ID: 800014000, Durability: 1, Miktar: 200, Seri: 0 Esya ID: 800077000, Durability: 1, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0 Esya ID: 0, Durability: 0, Miktar: 0, Seri: 0
Bu şekilde listelemeyi yapıyor çalışıyor kod hocam.
USE [KO_DATABASE_SERVER_001]
GO
/****** Object: StoredProcedure [dbo].[VIP_WAREHOUSE_Coz] Script Date: 6.12.2024 00:28:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[VIP_WAREHOUSE_Coz]
@strAccountID NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @dwid INT,
@dur INT,
@stacksize1 INT,
@Sira INT = 0, -- Slot ID başlangıç noktası
@Time DATETIME,
@Serial BIGINT,
@ItemName NVARCHAR(100);
-- Çözümleme için geçici bir değişken ve başlangıç pozisyonu
DECLARE @i INT = 1,
@length INT;
-- VIPWarehouseData uzunluğunu al
SELECT @length = DATALENGTH(VIPWarehouseData)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Eğer kullanıcı yoksa işlem sonlanır
IF @length IS NULL
BEGIN
PRINT 'Kullanıcı bulunamadı.';
RETURN;
END
WHILE @i <= @length
BEGIN
SELECT
@dwid = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 4, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 3, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 2, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 1, 1)
AS INT),
@dur = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 2, 1)
AS SMALLINT),
@stacksize1 = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 2, 1)
AS SMALLINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Eşya adı çözümlemesi (ITEM tablosuna göre)
SELECT @ItemName = strName
FROM ITEM
WHERE Num = @dwid;
-- Slot ID hesapla (Sıra numarası olarak)
SET @Sira = @i / 8;
SELECT
@Time = CAST(SUBSTRING(CAST(VIPWarehouseDataTime AS VARBINARY), @i, 8) AS DATETIME),
@Serial = CAST(SUBSTRING(CAST(strSerial AS VARBINARY), @i, 8) AS BIGINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Sonuçları yazdır
PRINT 'Slot ID: ' + CAST(@Sira AS NVARCHAR) +
', Eşya ID: ' + CAST(@dwid AS NVARCHAR) +
', Eşya Adı: ' + ISNULL(@ItemName, 'Bilinmiyor') +
', Durability: ' + CAST(@dur AS NVARCHAR) +
', Miktar: ' + CAST(@stacksize1 AS NVARCHAR) +
--', Zaman: ' + CAST(@Time AS NVARCHAR) +
', Seri: ' + CAST(@Serial AS NVARCHAR);
-- Bir sonraki eşya için adım
SET @i = @i + 8;
END
END
Slot ID: 0, Esya ID: 389072000, Esya Adi: Crisis potion [Limited], Durability: 162, Miktar: 152, Seri: 3891170611368237057
Slot ID: 1, Esya ID: 389071000, Esya Adi: Ibex potion [Limited], Durability: 189, Miktar: 232, Seri: 5332317028928395265
Slot ID: 2, Esya ID: 810305000, Esya Adi: Spirit of Genie, Durability: 1, Miktar: 0, Seri: 1873546983206754305
Slot ID: 3, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 4, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 5, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 6, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 7, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 8, Esya ID: 0, Esya Adi: Spirit of Genie, Durability: 0, Miktar: 48, Seri: 0
Slot ID: 9, Esya ID: 379006000, Esya Adi: Stone of life, Durability: 200, Miktar: 0, Seri: 0
Slot ID: 10, Esya ID: 0, Esya Adi: Stone of life, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 11, Esya ID: 0, Esya Adi: Stone of life, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 12, Esya ID: 0, Esya Adi: Stone of life, Durability: 0, Miktar: 240, Seri: 0
Slot ID: 13, Esya ID: 800022000, Esya Adi: Duration Item, Durability: 1, Miktar: 0, Seri: 0
Slot ID: 14, Esya ID: 0, Esya Adi: Duration Item, Durability: 0, Miktar: 112, Seri: 0
Slot ID: 15, Esya ID: 810950000, Esya Adi: Dark Fragment of Lust, Durability: 24, Miktar: 0, Seri: 0
Slot ID: 16, Esya ID: 0, Esya Adi: Dark Fragment of Lust, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 17, Esya ID: 0, Esya Adi: Dark Fragment of Lust, Durability: 0, Miktar: 104, Seri: 0
Slot ID: 18, Esya ID: 610001000, Esya Adi: Kaul, Durability: 1, Miktar: 88, Seri: 0
Slot ID: 19, Esya ID: 389191000, Esya Adi: Familiar Summon, Durability: 8, Miktar: 168, Seri: 0
Slot ID: 20, Esya ID: 399129000, Esya Adi: War Flash, Durability: 10, Miktar: 192, Seri: 0
Slot ID: 21, Esya ID: 399128000, Esya Adi: DC Flash, Durability: 10, Miktar: 208, Seri: 0
Slot ID: 22, Esya ID: 700002000, Esya Adi: Trina's Piece, Durability: 1, Miktar: 152, Seri: 0
Slot ID: 23, Esya ID: 800079000, Esya Adi: HP Scroll 60%, Durability: 1, Miktar: 0, Seri: 0
Slot ID: 24, Esya ID: 0, Esya Adi: HP Scroll 60%, Durability: 0, Miktar: 144, Seri: 0
Slot ID: 25, Esya ID: 379258000, Esya Adi: Tears of Karivdis, Durability: 1, Miktar: 144, Seri: 0
Slot ID: 26, Esya ID: 508122000, Esya Adi: Golden Mattock voucher, Durability: 1, Miktar: 152, Seri: 0
Slot ID: 27, Esya ID: 800015000, Esya Adi: Speed-Up Potion, Durability: 1, Miktar: 176, Seri: 0
Slot ID: 28, Esya ID: 800014000, Esya Adi: Scroll of Attack, Durability: 1, Miktar: 200, Seri: 0
Slot ID: 29, Esya ID: 800077000, Esya Adi: Scroll of Armor 400, Durability: 1, Miktar: 0, Seri: 0
Slot ID: 30, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 31, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 32, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 33, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 34, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 35, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 36, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 37, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 38, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 39, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 40, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 41, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 42, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 43, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 44, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 45, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 46, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
Slot ID: 47, Esya ID: 0, Esya Adi: Scroll of Armor 400, Durability: 0, Miktar: 0, Seri: 0
USE [KO_DATABASE_SERVER_001]
GO
ALTER PROCEDURE [dbo].[VIP_WAREHOUSE_Coz]
@strAccountID NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @dwid INT,
@dur INT,
@stacksize1 INT,
@ItemPos INT = 0, -- Slot ID başlangıç noktası
@Time DATETIME,
@Serial BIGINT,
@ItemName NVARCHAR(100);
-- Çözümleme için geçici bir değişken ve başlangıç pozisyonu
DECLARE @i INT = 1,
@length INT;
-- VIPWarehouseData uzunluğunu al
SELECT @length = DATALENGTH(VIPWarehouseData)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Eğer kullanıcı yoksa işlem sonlanır
IF @length IS NULL
BEGIN
PRINT 'Kullanıcı bulunamadı.';
RETURN;
END
WHILE @i <= @length
BEGIN
-- VIPWarehouseData içindeki eşya ID, dayanıklılık ve miktarı çöz
SELECT
@dwid = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 4, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 3, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 2, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 1, 1)
AS INT),
@dur = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 2, 1)
AS SMALLINT),
@stacksize1 = CAST(
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 1) AS VARBINARY(1)), 1, 1) +
SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 6, 1) AS VARBINARY(1)), 1, 1)
AS SMALLINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Miktar null ise sıfır olarak ayarla
IF @stacksize1 IS NULL
BEGIN
SET @stacksize1 = 0;
END
-- Eğer eşya ID sıfır veya boş ise eşya adı NULL yap ve miktarı sıfır yap
IF (@dwid = 0 OR @dwid IS NULL)
BEGIN
SET @ItemName = 'Boş Slot';
SET @stacksize1 = 0; -- Boş slot ise miktarı sıfır yap
END
ELSE
BEGIN
-- Eşya adı çözümlemesi (ITEM tablosuna göre)
SELECT @ItemName = strName
FROM ITEM
WHERE Num = @dwid;
-- Eğer eşya adı bulunamazsa "Bilinmiyor" yap
SET @ItemName = ISNULL(@ItemName, 'Bilinmiyor');
END
-- Slot ID hesapla (Slot sırasını belirlemek için)
SET @ItemPos = (@i - 1) / 8;
-- Zaman ve serial çözümleme
SELECT
@Time = CAST(SUBSTRING(CAST(VIPWarehouseDataTime AS VARBINARY), @i, 8) AS DATETIME),
@Serial = CAST(SUBSTRING(CAST(strSerial AS VARBINARY), @i, 8) AS BIGINT)
FROM VIP_WAREHOUSE
WHERE strAccountID = @strAccountID;
-- Sonuçları yazdır
PRINT 'Slot ID: ' + CAST(@ItemPos AS NVARCHAR) +
', Eşya ID: ' + CAST(@dwid AS NVARCHAR) +
', Eşya Adı: ' + @ItemName +
', Durability: ' + CAST(@dur AS NVARCHAR) +
', Miktar: ' + CAST(@stacksize1 AS NVARCHAR) +
', Seri: ' + CAST(@Serial AS NVARCHAR);
-- Bir sonraki eşya için adım
SET @i = @i + 8;
END
END
GO
if ($user_fetchdata) {
$strItem = $user_fetchdata['strItem'];
$itemPosition_inv = 0;
$invbinarylength = 600;
$deleteSqlinv = "DELETE FROM itemler WHERE strUserID = ?";
$deleteStmtinv = odbc_prepare($conn, $deleteSqlinv);
odbc_execute($deleteStmtinv, array($userID));
while ($itemPosition_inv < $invbinarylength) {
$itemData_f = substr($strItem, $itemPosition_inv, 8);
$itemID_f = unpack('V', substr($itemData_f, 0, 4))[1];
$durability_f = unpack('v', substr($itemData_f, 4, 2))[1];
$stackSize_f = unpack('v', substr($itemData_f, 6, 2))[1];
// İtem bilgilerini almak için SQL sorgusu
$itemSql_f = "SELECT Num, Extension FROM ITEM WHERE Num = ?";
$itemStmt_f = odbc_prepare($conn, $itemSql_f);
odbc_execute($itemStmt_f, array($itemID_f));
$itemInfo_f = odbc_fetch_array($itemStmt_f);
$itemName_f = $itemInfo_f ? $itemInfo_f['Num'] : '';
$extendedName_f = $itemInfo_f ? $itemInfo_f['Extension'] : '';
// Veriyi yeni tabloya ekleme
$insertSql_f = "INSERT INTO itemler (dwid, stacksize, durability, strUserID, sira, itembasicname, extname)
VALUES (?, ?, ?, ?, ?, ?, ?)";
$insertStmt_f = odbc_prepare($conn, $insertSql_f);
odbc_execute($insertStmt_f, array($itemID_f, $stackSize_f, $durability_f, $userID, $itemPosition_inv / 8, $itemName_f, $extendedName_f));
$itemPosition_inv += 8;
}
}
TEŞEKKÜRLERPHP:if ($user_fetchdata) { $strItem = $user_fetchdata['strItem']; $itemPosition_inv = 0; $invbinarylength = 600; $deleteSqlinv = "DELETE FROM itemler WHERE strUserID = ?"; $deleteStmtinv = odbc_prepare($conn, $deleteSqlinv); odbc_execute($deleteStmtinv, array($userID)); while ($itemPosition_inv < $invbinarylength) { $itemData_f = substr($strItem, $itemPosition_inv, 8); $itemID_f = unpack('V', substr($itemData_f, 0, 4))[1]; $durability_f = unpack('v', substr($itemData_f, 4, 2))[1]; $stackSize_f = unpack('v', substr($itemData_f, 6, 2))[1]; // İtem bilgilerini almak için SQL sorgusu $itemSql_f = "SELECT Num, Extension FROM ITEM WHERE Num = ?"; $itemStmt_f = odbc_prepare($conn, $itemSql_f); odbc_execute($itemStmt_f, array($itemID_f)); $itemInfo_f = odbc_fetch_array($itemStmt_f); $itemName_f = $itemInfo_f ? $itemInfo_f['Num'] : ''; $extendedName_f = $itemInfo_f ? $itemInfo_f['Extension'] : ''; // Veriyi yeni tabloya ekleme $insertSql_f = "INSERT INTO itemler (dwid, stacksize, durability, strUserID, sira, itembasicname, extname) VALUES (?, ?, ?, ?, ?, ?, ?)"; $insertStmt_f = odbc_prepare($conn, $insertSql_f); odbc_execute($insertStmt_f, array($itemID_f, $stackSize_f, $durability_f, $userID, $itemPosition_inv / 8, $itemName_f, $extendedName_f)); $itemPosition_inv += 8; } }
ben prosedürsüz çalışıyorum yukarıdaki kodu C# işleyiş bicimine çekerseniz editör içine de alabilirsiniz.
HOCAM OZELDEN BI NUMARA ATARMISN EDİTÖRLE ILGILI SENIN EDİTORLEMerhaba kolay gelsin cümleten;
VIP_KEY DEKİ İTEMLERİ ÇEKTİRMEK
Procedure Hazırladım test de edemiyorum server falan kurulu değil 2 isteğim var
(1) kodu Denemek
(2) Eğer çalışmıyorsa elinde olan biri Procedure varsa paylaşırsa sevinirim.
SQL:USE [KO_DATABASE_SERVER_001] GO /****** Object: StoredProcedure [dbo].[VIP_WAREHOUSE_Coz] Script Date: 5.12.2024 23:36:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[VIP_WAREHOUSE_Coz] @strAccountID NVARCHAR(50) AS BEGIN DECLARE @dwid INT, @dur INT, @stacksize1 INT, @Sira INT, @Time DATETIME, @Serial BIGINT; -- Çözümleme için geçici bir değişken ve başlangıç pozisyonu DECLARE @i INT = 1, @length INT; SELECT @length = DATALENGTH(VIPWarehouseData) FROM VIP_WAREHOUSE WHERE strAccountID = @strAccountID; -- Eğer kullanıcı yoksa işlem sonlanır IF @length IS NULL BEGIN PRINT 'Kullanıcı bulunamadı.'; RETURN; END WHILE @i <= @length BEGIN SELECT @dwid = CAST( SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 4, 1) + SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 3, 1) + SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 2, 1) + SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i, 4) AS VARBINARY(4)), 1, 1) AS INT), @dur = CAST( SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 1, 1) + SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 5, 2) AS VARBINARY(2)), 2, 1) AS SMALLINT), @stacksize1 = CAST( SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 1, 1) + SUBSTRING(CAST(SUBSTRING(VIPWarehouseData, @i + 7, 2) AS VARBINARY(2)), 2, 1) AS SMALLINT) FROM VIP_WAREHOUSE WHERE strAccountID = @strAccountID; -- Zaman ve serial çözümleme SELECT @Time = CAST(SUBSTRING(CAST(VIPWarehouseDataTime AS VARBINARY), @i, 8) AS DATETIME), @Serial = CAST(SUBSTRING(CAST(strSerial AS VARBINARY), @i, 8) AS BIGINT) FROM VIP_WAREHOUSE WHERE strAccountID = @strAccountID; PRINT 'Eşya ID: ' + CAST(@dwid AS NVARCHAR) + ', Durability: ' + CAST(@dur AS NVARCHAR) + ', Miktar: ' + CAST(@stacksize1 AS NVARCHAR) + --', Zaman: ' + CAST(@Time AS NVARCHAR) + ', Seri: ' + CAST(@Serial AS NVARCHAR); -- Bir sonraki eşya için adım SET @i = @i + 8; END END