Item Error

Results 1 to 3 of 3
  1. #1
    Enthusiast LizeCF is offline
    MemberRank
    Jun 2013 Join Date
    GermanyLocation
    46Posts

    Item Error

    Hi,
    I have a problem ... if I check in a client appears the Hotel View and then I'll get kicked out, what remains is the error:

    Screen:
    http://prntscr.com/2kfbn1

    Code:


    Error in query:
    SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid
    MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Parameter @userid' must be defined.
    bei MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName)
    bei MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)
    bei MySql.Data.MySqlClient.Statement.BindParameters()
    bei MySql.Data.MySqlClient.PreparableStatement.Execute()
    bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    bei MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
    bei System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
    bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
    bei System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
    bei System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
    bei Database_Manager.Database.Session_Details.QueryAdapter.getTable()


    I hope someone can help me,
    LizeCF

    - - - Updated - - -

    #push
    i need help!!


  2. #2
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: Item Error

    It doesnt bind a value to the parameter 'userid'

    Find the query in your source code and post the void here as I dont know what emulator you are trying to use.

  3. #3
    Enthusiast LizeCF is offline
    MemberRank
    Jun 2013 Join Date
    GermanyLocation
    46Posts

    Re: Item Error

    I trying the swift emulator.

    This query is in InventoryComponent.cs and UserDataFactory.cs

    InventoryComponent.cs:
    internal void LoadInventory()
    {
    DataTable table;
    DataTable table2;

    this.floorItems.Clear();
    this.wallItems.Clear();
    this.discs.Clear();
    this.InventoryPets.Clear();

    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
    {
    dbClient.setQuery("SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid");
    dbClient.addParameter("userid", (int)this.UserId);
    table = dbClient.getTable();
    }

    foreach (DataRow row in table.Rows)
    {
    string str;
    uint id = Convert.ToUInt32(row[0]);
    uint baseItem = Convert.ToUInt32(row[1]);
    if (!DBNull.Value.Equals(row[2]))
    {
    str = (string)row[2];
    }
    else
    {
    str = string.Empty;
    }
    uint rareid = Convert.ToUInt32(row[3]);
    string groupstring = (string)row[4];
    UserItem item = new UserItem(id, baseItem, str, rareid, groupstring, (uint)this.UserId);
    if (item.GetBaseItem().InteractionType == InteractionType.musicdisc)
    {
    this.discs.Add(id, item);
    }
    if (item.isWallItem)
    {
    this.wallItems.Add(id, item);
    }
    else
    {
    this.floorItems.Add(id, item);
    }
    }

    using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
    {
    adapter.setQuery("SELECT * FROM user_pets WHERE user_id = " + this.UserId + " AND room_id = 0");
    table2 = adapter.getTable();
    }
    if (table2 != null)
    {
    foreach (DataRow row in table2.Rows)
    {
    Pet pet = Catalog.GeneratePetFromRow(row);
    this.InventoryPets.Add(pet.PetId, pet);
    }
    }
    }

    UserDataFactroy.cs

    using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
    {
    if (ButterflyEnvironment.useSSO)
    {
    adapter.setQuery("SELECT * " +
    "FROM users " +
    "WHERE auth_ticket = @sso ");
    }
    else
    {
    adapter.setQuery("SELECT * " +
    "FROM users " +
    "WHERE auth_ticket = @sso ");
    }


    adapter.addParameter("sso", sessionTicket);


    row = adapter.getRow();
    if (row == null)
    {
    errorCode = 1;
    return null;
    }
    num = Convert.ToUInt32(row["id"]);
    if (ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(num) != null)
    {
    errorCode = 2;
    return null;
    }
    string str = (string) row["lastdailycredits"];
    string str2 = DateTime.Today.ToString("MM/dd");
    if (str != str2)
    {
    adapter.runFastQuery(string.Concat(new object[] { "UPDATE users SET daily_respect_points = 3, lastdailycredits = '", str2, "' WHERE id = ", num }));
    }
    adapter.setQuery("SELECT * FROM user_achievement WHERE userid = " + num);
    table = adapter.getTable();
    adapter.setQuery("SELECT room_id FROM user_favorites WHERE user_id = " + num);
    table2 = adapter.getTable();
    adapter.setQuery("SELECT ignore_id FROM user_ignores WHERE user_id = " + num);
    table3 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_bots WHERE user_id = " + num + " AND room_id = 0");
    dBots = adapter.getTable();
    adapter.setQuery("SELECT tag FROM user_tags WHERE user_id = " + num);
    table4 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_subscriptions WHERE user_id = " + num);
    table5 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_badges WHERE user_id = " + num);
    table6 = adapter.getTable();
    if (adapter.dbType == DatabaseType.MySQL)
    {
    adapter.setQuery("SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid");
    }
    else
    {
    adapter.setQuery("EXECUTE getuseritems " + num);
    }
    table7 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_effects WHERE user_id = " + num);
    table8 = adapter.getTable();
    adapter.setQuery(string.Concat(new object[] { "SELECT users.id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.sender WHERE messenger_friendships.receiver = ", num, " UNION ALL SELECT users.id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.receiver WHERE messenger_friendships.sender = ", num, " LIMIT 700" }));
    table9 = adapter.getTable();
    adapter.setQuery("SELECT messenger_requests.sender,messenger_requests.receiver,users.username FROM users JOIN messenger_requests ON users.id = messenger_requests.sender WHERE messenger_requests.receiver = " + num + " LIMIT 150");
    table10 = adapter.getTable();
    adapter.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = @name");
    adapter.addParameter("name", (string) row["username"]);
    table11 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_pets WHERE user_id = " + num + " AND room_id = 0");
    table12 = adapter.getTable();
    adapter.setQuery("SELECT * FROM user_quests WHERE user_id = " + num);
    table13 = adapter.getTable();
    if (ButterflyEnvironment.groupsEnabled)
    {
    adapter.setQuery("SELECT groups_memberships.*, groups_details.* FROM groups_memberships LEFT JOIN groups_details ON groups_memberships.groupid = groups_details.id WHERE groups_memberships.userid = " + num + " AND groups_memberships.is_current = '1'");
    group = adapter.getRow();
    }
    adapter.setQuery(string.Concat(new object[] { "UPDATE users SET ip_last = @ip WHERE id = ", num, "; UPDATE user_info SET login_timestamp = '", ButterflyEnvironment.GetUnixTimestamp(), "' WHERE user_id = ", num, " ; " }));
    adapter.addParameter("ip", ip);
    adapter.runQuery();
    if (adapter.dbType == DatabaseType.MySQL)
    {
    adapter.runFastQuery("REPLACE INTO user_online VALUES (" + num + ")");
    }
    else
    {
    adapter.runFastQuery(string.Concat(new object[] { "IF NOT EXISTS (SELECT userid FROM user_online WHERE userid = ", num, ") INSERT INTO user_online VALUES (", num, ")" }));
    }
    adapter.setQuery("SELECT * FROM user_relationships WHERE requester_id = " + num);
    table14 = adapter.getTable();
    }



Advertisement