![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FieldByName vs FieldValues
TUser © (2004-06-22 18:20:00)Везде пишут, что FieldByName - устаревшая функция. никак не пойму - почему. Чем FieldValues лучше?
Sandman25 (2004-06-23 13:44:00) [1][16] Anatoly Podgoretsky © (23.06.04 13:40)
Согласен. Именно поэтому я написал про DataSet как параметр.
Anatoly Podgoretsky (2004-06-23 13:40:00) [2]Еще быстрее не TField.AsXXX, а TxxField.Value отсутствуют лишнии проверки и преобразования, значение переменной сразу пишется.
Sandman25 (2004-06-23 13:36:00) [3][13] Жук © (23.06.04 13:00)
Самый быстрый способ обращения к полю во нескольких записях DataSet'а, переданного параметром.
Slym (2004-06-23 13:32:00) [4]Note: Because FieldValues always uses Variants, it may be a somewhat slower method of accessing data, than using a field’s native format (for example, using a field’s AsXXX property), especially in applications that process large amounts of data.
Перевод: с вариантами медленнее чем с нативными методами asXXX, особенно при больших потоках данных.
Жук (2004-06-23 13:00:00) [5]
> Sandman25 © (23.06.04 11:47) [12]
> ИМХО, самый быстрый способ
Самый быстрый способ чего ? "Приготовления сосисок"(с) ? :-)
Sandman25 (2004-06-23 11:47:00) [6]MyField: TField;
MyField := FieldByName(...);
First;
while not Eof do
...
MyField.AsXXX
ИМХО, самый быстрый способ
max1000 (2004-06-23 11:40:00) [7]Я предпочитаю использовать FieldValues кргда работаю с DBF файлами которые заношу в IBase там не надо знать какие типы полей. а просто указываем FieldValues
Silver Alex (2004-06-23 11:06:00) [8]я понял. Конечно я знаю что возвращается значение нескольких полей, но я имел ввиду что в любом случае возвращается значение TField.Value, то есть Variant.А так как вопрос был "чем лучше FieldValues FieldByName" , я и показал что все равно идет обращение к свойству FieldByName.
Надеюсь ясно обьяснился :)
Плохиш (2004-06-23 10:49:00) [9]>Silver Alex © (23.06.04 10:42) [8]
Реплика к
> > Silver Alex © (23.06.04 09:45) [2]
> > Тем более если посмотреть реализацию этого свойства , то
> > результат там возвращается тупо Result := FieldByName
или Вы сразу забываете свои слова?
Silver Alex (2004-06-23 10:42:00) [10]
> Плохиш © (23.06.04 10:27) [5]
> Странно, в моей версии соурсов FieldValues позволяет получить >значения сразу нескольких полей ;-)
Странно,в моей версии тоже.А ты считал это достоинством именно твоей версии?И к чему эта реплика?
Johnmen (2004-06-23 10:41:00) [11]>TUser ©
В хелпе на FieldValues есть Note. Там указана особенность...:)
TUser (2004-06-23 10:33:00) [12]У ТП так написано и в книге 'Delphi 7 proof'.
Мне-то оба этих способа нравятся, просто хотелось понять, чем одно лучше другого. Но, как я понимаю, принципиальных недостатков ни у кго из них нет.
Плохиш (2004-06-23 10:27:00) [13]> Silver Alex © (23.06.04 09:45) [2]
> Тем более если посмотреть реализацию этого свойства , то
> результат там возвращается тупо Result := FieldByName
Странно, в моей версии соурсов FieldValues позволяет получить значения сразу нескольких полей ;-)
>TUser © (22.06.04 18:20)
А ссылку на "везде" всё-таки хотелось бы получить
Vlad (2004-06-23 10:00:00) [14]
> TUser © (22.06.04 18:20)
> Везде пишут, что FieldByName - устаревшая функция
"Не читайте перед завтраком советских газет" (c)
P.S. Если не нравится FieldByName используй FindField - это аналог.
Johnmen (2004-06-23 09:52:00) [15]>TUser © (22.06.04 18:20)
>Везде пишут...
Можно узнать хотя бы один источник ?
Silver Alex (2004-06-23 09:45:00) [16]Мое мнение что FieldValues ничем не лучше, а наоборот так как возвращает всегда Variant.А как показывает практика Variant подходит не всегда, иногда нужно именно Integer или String, или еще чего тамю Тем более если посмотреть реализацию этого свойства , то результат там возвращается тупо Result := FieldByName(FieldName).Value
DrPass (2004-06-23 01:54:00) [17]Borland так решила. А она знает. В общем, слушайся старших