gpt4 book ai didi

c++ - C++ Azure 移动库中的更新功能损坏

转载 作者:搜寻专家 更新时间:2023-10-31 01:46:16 25 4
gpt4 key购买 nike

我正在尝试使用 azure mobile 中的“更新”功能更新我的一个 Azure Mobile 表中的记录C++ header 。但我得到一个异常(exception)。下面是我的代码:

void DBUtils::DBQuestion::UpdateQuestionInTable(std::shared_ptr<azure::mobile::table> table)
{
auto obj = json::value::object();
obj[U("id")] = json::value::string(ID);
obj[U("QuestionText")] = json::value::string(QuestionText);
obj[U("AnswerLatitude")] = json::value::number(AnswerLatitude);
obj[U("AnswerLongitude")] = json::value::number(AnswerLongitude);

table->update(obj);
}

我已验证上面的 ID 是表中实际存在的有效 ID。类似的插入操作(不指定 ID 字段)实际上成功了:

void DBUtils::DBQuestion::InsertIntoTable(std::shared_ptr<azure::mobile::table> table)
{
auto obj = json::value::object();
obj[U("QuestionText")] = json::value::string(QuestionText);
obj[U("AnswerLatitude")] = json::value::number(AnswerLatitude);
obj[U("AnswerLongitude")] = json::value::number(AnswerLongitude);

table->insert(obj);
}

我做错了什么?

最佳答案

Azure Mobile 最近更新了它的表架构,因此 Id 字段现在是一个字符串,如果客户端未设置它,服务器会使用 Guid 值填充它。

此更改在 C++ 库中引入了一个错误。作为解决方法,您可以尝试调用另一个重载进行更新,即采用 ID 字符串和对象的重载。

void DBUtils::DBQuestion::UpdateQuestionInTable(utility::string_t id, std::shared_ptr<azure::mobile::table> table)
{
auto obj = json::value::object();
obj[U("QuestionText")] = json::value::string(QuestionText);
obj[U("AnswerLatitude")] = json::value::number(AnswerLatitude);
obj[U("AnswerLongitude")] = json::value::number(AnswerLongitude);

ID = id;

table->update(ID, obj);
}

关于c++ - C++ Azure 移动库中的更新功能损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com