UniObjects - разница между WriteField и записью?

Может кто-нибудь объяснить, пожалуйста, разницу в следующем:

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);

Оба установят атрибут 120 записи "123456" в строку "Новое значение". Это просто вопрос записи только одного атрибута записи против записи всей записи? Является ли один лучше другого, когда нужно обновить один атрибут?

Спасибо!

1 ответ

Решение

В первом примере вы извлекаете целую запись с сервера на клиент. Оказавшись на стороне клиента, вы замените атрибут 20 своим значением, а затем запишите всю запись на сервер.

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

Во втором примере вы указываете серверу прочитать всю запись, обновить атрибут 20, а затем записать всю запись. Все это происходит на стороне сервера по проводам.

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

Если вы обновляете один атрибут и не нуждаетесь в записи на клиенте, позже определенно будет работать лучше. Первый вариант может быть лучше, если 1) вам нужно записать данные на стороне клиента и / или 2) вам нужно обновить несколько атрибутов и вы хотите избежать нескольких записей в БД.

Другие вопросы по тегам