ตั้งค่าDatabaseภาษาไทย - GameRanStudio

Hot

Post Top Ad

วันอังคารที่ 18 เมษายน พ.ศ. 2560

ตั้งค่าDatabaseภาษาไทย

เนื่องจากไฟล์ Database ที่เราได้มาเป็นของจีนจึงต้องทำการ clear data ทั้งหมดก่อนไม่งัน ไอดีเก่าจะมีอยู่เยอะมาก
แล้ว จะตั้งชื่อภาษาไทยไม่ได้
วิธี Clear database เพื่อเล่นใหม่

ใช้ Query Analyzer ของ SQL


1.เลือกTab DB ด้านบนเป็น Rangame1 แล้ว copy Code ด้านล่างไปวาง

TRUNCATE table ChaFriend
TRUNCATE table ChaInfo
TRUNCATE table UserInven
TRUNCATE table GuildAlliance
TRUNCATE table GuildRegion

แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน

2.เลือกแทป DB ด้านบนเป็น RanLog แล้ว copy Code ด้านล่างไปวาง

TRUNCATE table LogItemExchange
TRUNCATE table LogServerState
TRUNCATE table LogAction
TRUNCATE table LogItemMax

แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน

3.เลือกแทป DBด้านบนเป็น RanShop แล้ว copy Code ด้านล่างไปวาง

TRUNCATE table LogShopPurchase
TRUNCATE table ShopPurchase
TRUNCATE table ShopItemMap

แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน

4.เลือกแทป DB ด้านบนเป็น RanUser แล้ว copy Code ด้านล่างไปวาง

TRUNCATE table CheckId
TRUNCATE table LogGameTime
TRUNCATE table LogGmCmd
TRUNCATE table LogLogin
TRUNCATE table newcheckid
TRUNCATE table StatGameTime
TRUNCATE table StatLogin
TRUNCATE table UserInfo

แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน

วิธีทำตั้งชื่อตัวละครเป็นภาษาไทย

ใช้โปรแกรม Query Analyzer นะครับ
Connect เข้า Sql Server ของเรา
Copy Code ด้านล่างไปใส่แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน

ALTER DATABASE [RanGame1] COLLATE Thai_CI_AS
GO
ALTER DATABASE [RanLog] COLLATE Thai_CI_AS
GO
ALTER DATABASE [RanShop] COLLATE Thai_CI_AS
GO
ALTER DATABASE [RanUser] COLLATE Thai_CI_AS
GO



จากนั้นใช้โปรแกรม Enterprise Manager ไปที่ DB:Rangame1-> คลิกขวาที่ table chainfo -> เลือก Design Table
เลือกที่คำว่าChaName,ChaGuName แล้วมองไปที่ด้านล่าง ให้เปลื่ยน Collection ไปเป็น Thai_CI_AS
กดเซฟแล้วไปแก้ที่ Table ตัวต่อไปนี้ด้วยครับ

GuildInfo->GuName,GuNotice

DB:Ranlog
HackProgramList->HackProgramName
ItemList->ItemName
LogExchangeFlag->ExchangeName
LogHackProgram->HackComment
LogMakeType->MakeName
SkillList->SkillName

DB:Ranshop
LogShopPurchase->PurKey
ShopItemMap->ItemName
ShopPurchase->PurKey,UserUID
ShopPurFlag->PurFlagName

DB:Ranuser

BlockAddress->BlockAddress,BlockReason
CheckId->Id
FullUserInfo->UserName,UserID,UserPass,UserPass2,BodyID,Sex,Email,BirthY,BirthM,BirthD,TEL,Mobile,QQ,MSN,City1,City2,Post,Address,SafeId
IPInfo->IpAddress
LogGameTime->UserID
LogGmCmd->GmCmd
LogLogin->UserID,LogIpAddress
newcheckid->Id
ServerGroup->SGName,OdbcName,OdbcUserID,OdbcPassword,OdbcLogName,OdbcLogUserID,OdbcLogPassword
UserInfo->UserName,UserID,UserPass,UserPass2,ChaName

วิธี Clear database เพื่อเล่นใหม่
ใช้ Query Analyzer
Copy Code ด้านล่างไปใส่แล้วสั่งรันโดยการกดปุ่ม ถูกสีนำเงิน แล้วรอสักพักค่อยกดปุม play หรือปุ่มสีเขียวๆ ด้านบน  

TRUNCATE table ChaFriend
TRUNCATE table ChaInfo
TRUNCATE table UserInven
ผมจะแบ่ง เป็น หมวดไว้นะครับ
เพราะ database จะมี 4 หมวด


๙๙๙ หรือใช้โค้ดด้านล่างนี้ ๙๙๙

////////////////////////////////////////////////////////////////////////////////////////////////////////////

DECLARE @collate nvarchar(100);
DECLARE @table nvarchar(255);
DECLARE @column_name nvarchar(255);
DECLARE @column_id int;
DECLARE @data_type nvarchar(255);
DECLARE @max_length int;
DECLARE @row_id int;
DECLARE @sql nvarchar(max);
DECLARE @sql_column nvarchar(max);
DECLARE @is_Nullable bit;
DECLARE @null nvarchar(25);

SET @collate = 'Thai_CI_AI';

DECLARE local_table_cursor CURSOR FOR

SELECT [name]
FROM sysobjects
WHERE OBJECTPROPERTY(id, N'IsUserTable') = 1

OPEN local_table_cursor
FETCH NEXT FROM local_table_cursor
INTO @table

WHILE @@FETCH_STATUS = 0
BEGIN

    DECLARE local_change_cursor CURSOR FOR

    SELECT ROW_NUMBER() OVER (ORDER BY c.column_id) AS row_id
        , c.name column_name
        , t.Name data_type
        , c.max_length
        , c.column_id
        , c.is_nullable
    FROM sys.columns c
    JOIN sys.types t ON c.system_type_id = t.system_type_id
    LEFT OUTER JOIN sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
    LEFT OUTER JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
    WHERE c.object_id = OBJECT_ID(@table)
    ORDER BY c.column_id

    OPEN local_change_cursor
    FETCH NEXT FROM local_change_cursor
    INTO @row_id, @column_name, @data_type, @max_length, @column_id, @is_nullable

    WHILE @@FETCH_STATUS = 0
    BEGIN

        IF (@max_length = -1) SET @max_length = 4000;
        set @null=' NOT NULL'
        if (@is_nullable = 1) Set @null=' NULL'
        if (@Data_type='nvarchar') set @max_length=cast(@max_length/2 as bigint)
        IF (@data_type LIKE '%char%')
        BEGIN TRY
            SET @sql = 'ALTER TABLE ' + @table + ' ALTER COLUMN [' + rtrim(@column_name) + '] ' + @data_type + '(' + CAST(@max_length AS nvarchar(100)) +  ') COLLATE ' + @collate + @null
            PRINT @sql
            EXEC sp_executesql @sql
        END TRY
        BEGIN CATCH
          PRINT 'ERROR: Some index or contraint rely on the column ' + @column_name + '. No conversion possible.'
          PRINT @sql
        END CATCH

        FETCH NEXT FROM local_change_cursor
        INTO @row_id, @column_name, @data_type, @max_length, @column_id, @is_Nullable

    END

    CLOSE local_change_cursor
    DEALLOCATE local_change_cursor

    FETCH NEXT FROM local_table_cursor
    INTO @table

END

CLOSE local_table_cursor
DEALLOCATE local_table_cursor

GO




ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Post Top Ad