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) вам нужно обновить несколько атрибутов и вы хотите избежать нескольких записей в БД.