Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   [Piercing Blow] Dapper Update (https://forum.zone-game.info/showthread.php?t=41967)

Boris2105 09.01.2017 23:20

Dapper Update
 
Пытаюсь реализовать пакет PROTOCOL_CHAR_CHANGE_EQUIP_REQ
Чтобы обновлялся Equip персонажа.
Но выдает ошибку.

https://pp.vk.me/c637218/v637218434/...vpgt-U_cM4.jpg

Update:
Свернуть ↑Развернуть ↓

PROGRAMMATOR 10.01.2017 04:26

Re: Dapper Update
 
Интерфейса не видно, ругается именно на него.

// Example
[ServiceContract]
public interface ICharacterService
{
    [OperationContract]
    bool Equip(Character character, Weapon weapon);
}
 
Code: C#

Да и запрос не верный, во-первых update выполняется с помощью Execute, а во-вторых он ничего кроме количества затронутых строк не выводит.

Boris2105 10.01.2017 13:17

Re: Dapper Update
 
Вот интерфейс.

 
    [ServiceContract]
    public interface ICharacterDao
    {
        [OperationContract]
        Character GetCharacter(int accountId);
        Character GetUpdate(int weapon_primary);
    }
 
Code: C#

PROGRAMMATOR 10.01.2017 17:09

Re: Dapper Update
 
Ну и где атрибут OperationContract у GetUpdate?
Им только GetCharacter помечен.

Boris2105 10.01.2017 20:54

Re: Dapper Update
 
Ругается на AccountId ,

 
string updateQuery = @"UPDATE `characters`.* SET AccountId = @AccountId WHERE WEAPON_PRIMARY = @WEAPON_PRIMARY";
var update = SqlMapper.Execute(connection, updateQuery, new { WEAPON_PRIMARY = weapon_primary });
 
Code: C#

PROGRAMMATOR 10.01.2017 21:00

Re: Dapper Update
 
А что этот запрос вообще должен сделать?

Boris2105 10.01.2017 21:01

Re: Dapper Update
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 422735)
А что этот запрос вообще должен сделать?

Заменить значение в бд character значение WEAPON_PRIMARY
Ну основное оружие должен сменить , в игре меняет но в бд не меняет , а выдает эту ошибку

PROGRAMMATOR 10.01.2017 21:47

Re: Dapper Update
 
Так значит запрос должен быть типа:

UPDATE `characters` SET `PrimaryWeapon` = @WeaponId WHERE `Id` IN(@Id)
 
Code: SQL

И аргументы

new { WeaponId = weaponId, Id = id }
 
Code: C#

Правда, не лучшее решение, лучше сделать связь через таблицу item_character в которой сохранять id предмета в инвентаре и id персонажа.

И ещё раз:
Свернуть ↑Развернуть ↓

Boris2105 10.01.2017 21:58

Re: Dapper Update
 
А почему?

Цитата:

Сообщение от PROGRAMMATOR (Сообщение 422738)
"var update не будет содержать ничего, кроме числа (количества) затронутых строк. "


PROGRAMMATOR 10.01.2017 22:09

Re: Dapper Update
 
        /// <summary>
        /// Execute parameterized SQL
        /// </summary>
        /// <returns>Number of rows affected</returns>
        public static int Execute(...)
 
Code: C#


Текущее время: 16:15. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot