0

有人可以解释以下区别:

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

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

和这个:

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

UniDynArray uda = new UniDynArray(myUniSession, "New Value");
myUniFile.WriteField(RecordID, AttribNum, uda);

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

谢谢!

4

1 回答 1

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)您需要更新多个属性并希望避免多次数据库写入,则前者可能会更好。

于 2015-08-05T12:54:45.087 回答