UniObjects - 写与WriteField的区别?

时间:2015-08-04 19:35:26

标签: universe u2 u2netdk

有人可以解释以下区别:

 JSONObject records = response.getJSONObject("data");
 JSONArray users = records.getJSONArray("users");

  for (int j = 0; j < users.length(); j++) {
          JSONObject v_obj = users.getJSONObject(j);
           Log.d("Dracula", v_obj.getString("id"));
           Log.d("Dracula", v_obj.getString("name"));
           Log.d("Dracula", v_obj.getString("email"));
  }

和此:

string RecordID = "123456";
string AttribNum = "120";
UniFile myUniFile = myUniSession.CreateUniFile("myFileName");

UniDynArray uda = myUniFile.Read(RecordID);
uda.Replace(AttribNum, "New Value");
myUniFile.Write();

两者都将记录“123456”的属性120设置为字符串“New Value”。只是写一个记录的一个属性与编写整个记录的问题?当需要更新单个属性时,一个比另一个好吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

在第一个示例中,您将从服务器获取整个记录到客户端。一旦在线路的客户端,您将属性20替换为您的值,然后将整个记录写入服务器。

Read(Server)
   -> Send(Server-Client)
      -> Change Record(Client)
         -> Send(Client-Server)
            -> Write(Server)

在第二个示例中,您指示服务器读取整个记录,更新属性20,然后写入整个记录。所有这些都发生在服务器的电话侧。

Read(Server)
   -> Change Record(Server)
      -> Write(Server)

如果您要更新单个属性并且不需要客户端上的记录,则后者肯定会表现更好。前者可能更好,如果1)您需要记录客户端和/或2)您需要更新多个属性,并希望避免多个数据库写入。