Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

Доступ к полям - Как быстрее?   Найти похожие ветки 

 
AlexanderSK   (2003-03-25 16:15) [0]

Как лучше работать с полями?
FieldByName или X := FindField и дальше работаем через X?

Заранее спасибо!


 
Johnmen   (2003-03-25 16:19) [1]

Создать список поле для НД и далее -
MySecretField.As...:=...
самое быстрое, но не самое понятное и красивое...


 
passm   (2003-03-25 16:19) [2]

AlexanderSK © (25.03.03 16:15)> Если поля создавать явно в Design Time


 
AlexanderSK   (2003-03-25 16:31) [3]

>passm ©
Поля получаются путем загрузки данных.

>Johnmen ©
Т.е. второй вариант?


 
Соловьев   (2003-03-25 16:34) [4]

не 2-й, а просто в дизайне дважды кликаешь на компоненте.


 
AlexanderSK   (2003-03-25 16:42) [5]

>Соловьев ©
Нет у меня дизайна! Точнее в дизайне не известно какие будут поля!


 
Johnmen   (2003-03-25 16:46) [6]

По моему мнению, не надо заморачиваться на быстродействие, ты его не почувствуешь, и обращаться к полям FieldByName("MyFieldName") и к значениям полей FieldByName("MyFieldName").As...


 
passm   (2003-03-25 16:55) [7]

AlexanderSK © (25.03.03 16:42)>
procedure DoNothing(DataSet: TDataSet); { :)) }
var
f1, f2: TField;
begin
{...}
f1:= DataSet.FieldByName("FIELD1");
f2:= DataSet.FieldByName("FIELD2");
{ use f1 and f2}
end;


 
les   (2003-03-25 17:16) [8]


> Доступ к полям - Как быстрее?

DataSet<поле>.As...

> Нет у меня дизайна!

Тогда бистрее - TDataSet.Fields[index].As...


 
MsGuns   (2003-03-25 19:14) [9]

>passm © (25.03.03 16:55)

И что, так будет быстрее ? В смысле затрат Проц-Память.
Сильно сомневаюсь, хоть компиллятор и оптимизирующий.


 
Val   (2003-03-25 19:48) [10]

>MsGuns © (25.03.03 19:14)
по идее быстрее, но нафиг. Cм. Johnmen © (25.03.03 16:46)
>les © (25.03.03 17:16)
ускользнет контроль над полями, лучше конкретизировать.


 
MsGuns   (2003-03-25 20:12) [11]

>Val © (25.03.03 19:48)
>по идее быстрее, но нафиг

Быстрее в смысле, что не надо просматривать всю коллекцию на предмет совпадения св-ва "Имя поля" ? А вот если по индексу (Fields[i]), так шустрее ? Чушь собачья, извини за резкость. Поиск в коллекции (фактически есть база и циклически меняемое смещение - индекс) весь происходит в ОП, причем для коллекции полей - очень небольшого размера. Проц, и так прохлаждающийся перманентно, схавает этот цикл, не заметив. Другое дело, что прога занимает энное кол-во мегабайт виртуала и виндузе часто-густо приходится свопироваться - так это беда не FieldsByName, а либо горе-программера, либо ограниченности ресурсов компа.

Зато в читабельности перл Fields[i+y*n] или MyField.As... сродни китайской грамоте. Когда вижу подобный код, хочется выпить с горя !


 
Val   (2003-03-25 20:22) [12]

:) Сергей, я говорил не о сравнении с Fields[i], а о сравнении со статическим набором полей. Ведь это(получение статического набора) делается при присвоении поля в примере DoNothing, но тогда непонятно, почему бы просто не получить этот набор как в Соловьев © (25.03.03 16:34), хотя, судя по смайлу, passm © (25.03.03 16:55) просто прикололся :)


 
MsGuns   (2003-03-25 20:29) [13]

>Val © (25.03.03 20:22)

Сразу не врубился. Юмор тонок для "юного исследователя TIBDataSet" (меня т.е.) ;)))

Задрал меня уже этот датасет - ну не хочет ни апдетиться, ни рефрешиться, ни позиционироваться ни вообще ни хрена ! Но, блин, я упорный, я его, гада, массой возьму !


 
Johnmen   (2003-03-26 01:10) [14]

>MsGuns © (25.03.03 20:29)
>Но, блин, я упорный, я его, гада, массой возьму !

Не, лучше ж..ой, в смысле усидчивостью... :)))))))))))


 
passm   (2003-03-26 09:33) [15]

Обычно поступаю как <Соловьев © (25.03.03 16:34)> про это и писал <passm © (25.03.03 16:19)>. Помимо скорости есть плюс в удобстве при описании абстрактных компонент/форм и использовании конкретных свойств полей (TStringField, TFloatField etc.).

Johnmen © (26.03.03 01:10)> Вспоминается анекдот про жену программиста с ребенком в зоопарке :))



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
14-44450
Dash
2003-03-30 05:12
2003.04.14
Banner


14-44372
sniknik
2003-03-25 22:55
2003.04.14
Куда подевалось


1-44118
апельсин==
2003-04-03 08:47
2003.04.14
работа с РАР.ЕХЕ


14-44399
Карелин Артем
2003-03-25 13:02
2003.04.14
Глючные компоенты.


1-44156
9600
2003-04-03 14:59
2003.04.14
TVolumeControl - кто-нибудь о таком слышал ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский