you got an idea why I can't delete my char Ingame? If I write : ,,I agree"... nothing happens..
Please help
my stored Procedure for SP_CHAR_DELETE:
Code:
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO /****************************************************************** * 작성자 : 한지욱 * 작성일 : 2004.10.11(월) * 내 용 : 캐릭터정보삭제 * 반환값 : -11 : user_character_secede Insert Fail -12 : user_suit_secede Insert Fail -13 : user_bag_secede Insert Fail -14 : user_storage_secede Insert Fail -15 : user_store_secede Insert Fail -16 : user_skill_secede Insert Fail -17 : user_slot_secede Insert Fail -18 : user_quest_doing_secede Insert Fail -19 : user_quest_done_secede Insert Fail -20 : 길드캐릭정보 삭제 실패 -1 : user_character 삭제 실패 0 : 성공 * 수정자 : Hanjiwook * 수정일 : 2005.04.27 (WED) * 수정내역 : 캐릭터삭제시 캐릭터정보를 SECEDE Table로 복사한다. ****************************************************************** * 수정자 : Hanjiwook * 수정일 : 2005.05.16 (MON) * 수정내역 : 캐릭터삭제시 개인상점정보를 SECEDE Table로 복사한다. ****************************************************************** * 수정자 : Hanjiwook * 수정일 : 2005.08.04(THU) * 수정내역 : 캐릭터정보에 PK정보 추가 (wPKCount, wChaoticLevel, nShield) ****************************************************************** * 수정자 : Hanjiwook * 수정일 : 2005.09.05(MON) * 수정내역 : 스탯클리어카운트 추가 (byStatClearCount) ****************************************************************** * 수정자 : Hanjiwook * 수정일 : 2005.09.06(TUE) * 수정내역 : PC 기타정보 추가 (dwFlag) ****************************************************************** * 수정자 : Choijihwan * 수정일 : 2006.02.06(MON) * 수정내역 : user_character테이블 PVP Columns 추가. DWORD dwPVPPoint; // PVP 점수 WORD wWinRecord; // 승리 횟수 WORD wLoseRecord; // 패배 횟수 WORD wDrawRecord; // 비긴 횟수 ****************************************************************** * 수정자 : Choijihwan * 수정일 : 2006.12.26(WEB) * 수정내역 : Add "dwSupplyPoint" column DWORD dwSupplyPoint; ******************************************************************/ ALTER PROCEDURE dbo.SP_CHAR_DELETE @character_no varchar(18) , @sp_rtn INT OUTPUT AS DECLARE @rowcnt int DECLARE @v_character_name varchar(40) DECLARE @v_guild_code varchar(10) BEGIN SET @v_character_name = dbo.FN_GetCharName(@character_no) SET @v_guild_code = dbo.FN_GetGuildCode(@v_character_name) IF LEN(@v_guild_code) > 0 BEGIN SET @sp_rtn = -20 RETURN END BEGIN TRANSACTION /* user_character_secede */ INSERT INTO user_character_secede ( character_no , character_name , user_no , dwAdv , dwPeerage , dwExp , dwMoney , dwStoreMoney , dwStorageMoney , nHP , nMP , wStr , wDex , wCon , wSpr , wPosX , wPosY , wRetPosX , wRetPosY , wMapIndex , wRetMapIndex , wStatPoint , wSkillPoint , wLevel , byPCClass , byDirection , byRetDirection , bySkillClearCount , byStatClearCount , wPKCount , wChaoticLevel , nShield , dwFlag , login_flag , ipt_date , ipt_time , upt_time , login_time , logout_time , user_ip_addr , del_date , del_time , dwPVPPoint , wWinRecord , wLoseRecord , wDrawRecord , dwSupplyPoint ) SELECT character_no , character_name , user_no , dwAdv , dwPeerage , dwExp , dwMoney , dwStoreMoney , dwStorageMoney , nHP , nMP , wStr , wDex , wCon , wSpr , wPosX , wPosY , wRetPosX , wRetPosY , wMapIndex , wRetMapIndex , wStatPoint , wSkillPoint , wLevel , byPCClass , byDirection , byRetDirection , bySkillClearCount , byStatClearCount , wPKCount , wChaoticLevel , nShield , dwFlag , login_flag , ipt_date , ipt_time , upt_time , login_time , logout_time , user_ip_addr , convert(char(8),getdate(),112), GetDate() , dwPVPPoint , wWinRecord , wLoseRecord , wDrawRecord , dwSupplyPoint FROM user_character WHERE character_no = @character_no IF (@@error <> 0 or @rowcnt<>1) BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -11 RETURN END /* user_suit_secede */ INSERT INTO user_suit_secede ( character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate ) SELECT character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate FROM user_suit WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -12 RETURN END /* user_bag_secede */ INSERT INTO user_bag_secede ( character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate ) SELECT character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate FROM user_bag WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -13 RETURN END /* user_storage_secede */ INSERT INTO user_storage_secede ( character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate ) SELECT character_no , line_no , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate FROM user_storage WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -14 RETURN END /* user_store_secede */ INSERT INTO user_store_secede ( character_no , line_no , dwPrice , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate ) SELECT character_no , line_no , dwPrice , byHeader , wIndex , dwSerialNumber , info , upt_time , reg_bindate , exp_bindate FROM user_store WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -15 RETURN END /* user_skill_secede */ INSERT INTO user_skill_secede ( character_no, line_no , info , ipt_time , upt_time ) SELECT character_no , line_no , info , ipt_time , upt_time FROM user_skill WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -16 RETURN END /* user_slot_secede */ INSERT INTO user_slot_secede ( character_no, line_no , info , ipt_time , upt_time ) SELECT character_no, line_no , info , ipt_time , upt_time FROM user_slot WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -17 RETURN END /* user_quest_doing_secede */ INSERT INTO user_quest_doing_secede ( character_no, q_index , q_count_0 , q_count_1 , q_count_2 , q_count_3 , q_start_time, upt_time ) SELECT character_no, q_index , q_count_0 , q_count_1 , q_count_2 , q_count_3 , q_start_time, upt_time FROM user_quest_doing WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -18 RETURN END /* user_quest_done_secede */ INSERT INTO user_quest_done_secede ( character_no, q_index , upt_time ) SELECT character_no, q_index , upt_time FROM user_quest_done WHERE character_no = @character_no IF @@error <> 0 BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -19 RETURN END -- user_character 삭제 DELETE FROM user_character WHERE character_no = @character_no SELECT @rowcnt = @@rowcount IF (@@error <> 0 or @rowcnt<>1) BEGIN ROLLBACK TRANSACTION SET @sp_rtn = -1 RETURN END COMMIT TRANSACTION SET @sp_rtn = 0 RETURN 0 END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO






