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

Вниз

Можно ли создать объект-поле класса TField динамически?   Найти похожие ветки 

 
User_OKA   (2002-10-02 08:34) [0]

С помощью редактора полей все гладко и красиво, на на этапе конструирования список полей мне неизвестен, т.к. я использую один TpFIBDataSet для нескольких таблиц. А хочется и лишние поля скрыть, и LookUp-поля организовать (колонки TDBGrid с PickList что-то не хочется).
Знаю, что если объект-поля не созданы, они создаются автоматически, а как до них достучаться? По имени TpFIBDataset.Name+<имя поля> не получается.


 
Max Zyuzin   (2002-10-02 08:58) [1]

А по порядковому номеру пробовали? Я по опыту работы с TIBDataSet... что то вроде MyIBDataSet.Fields[x]. и т.д.


 
User_OKA   (2002-10-02 09:57) [2]

Max Zyuzin © (02.10.02 08:58)
Не то. Через MyIBDataSet.Fields[x] я получу доступ к значению поля с номером x. А мне нужно изменять/настраивать само поле.


 
Johnmen   (2002-10-02 09:58) [3]

FieldByName уже отменили ?


 
antdrnc   (2002-10-02 10:12) [4]

Попробуйте использовать TDataSet.FieldDefs.

Query1.Close;
Query1.FieldDefs.Update;
for i:=0 to Query1.FieldDefs.Count-1 do
if (...) then
Query1.FieldDefs.Items[i].CreateField(Query1);
Query1.Open;


 
Sergey13   (2002-10-02 10:57) [5]

2User_OKA © (02.10.02 08:34)
> я использую один TpFIBDataSet для нескольких таблиц.
Для определенного количества или для любого?
> А хочется и лишние поля скрыть, и LookUp-поля организовать
А, таки наверное определенных, если знаешь какие поля скрывать.
> на на этапе конструирования список полей мне неизвестен
Так не известен, или может быть разным?

Не совсем понятны условия. В любом случае для абстрактного вопроса типа select * from anytable, для таблицы, состав которой ты не знаешь(тогда откуда знаешь ее имя?), тебе нужно этот состав узнать через системные таблицы (какие не скажу - не знаю). Ибо без знания наименований/типов полей тебе не обойтись. Если же эта инфа у тебя есть(запрос то ты сам составляешь) то используя FieldDefs собирай свой набор как хочешь - в хелпе очень приличный пример есть.

Если число датасетов всетаки известен, ИМХО, лучше их все таки прописать в дизайнере. Плюсов от этого, опять же ИМХО, больше чем минусов.



 
Alexander Vasjuk   (2002-10-02 12:10) [6]

User_OKA © (02.10.02 09:57)
Через MyIBDataSet.Fields[x] я получу доступ к значению поля с номером x. А мне нужно изменять/настраивать само поле.

Не так.
MyIBDataSet.Fields[x] и есть само поле


 
User_OKA   (2002-10-02 12:45) [7]

to Sergey13 © (02.10.02 10:57)
Список таблиц и полей этих таблиц мне известен, так как эту информацию я храню в своей базе данных в специальных таблицах. Преимущество в том, что при изменении состава полей или чего-то еще не придется копаться в исходном коде приложения. Достаточно будет подкорректировать эти специальные таблицы.
Спасибо за совет. Обязательно попробую.


 
First_May   (2002-10-02 12:55) [8]

Я делал поля динамически вот так и работает:

var TmpField: TStringField;

TmpField:=TStringField.Create(nil);
TmpField.FieldName:="comm";
TmpField.Name:=QList.Name+TmpField.FieldName;
TmpField.DataSet:=QList;
QList.FieldDefs.UpDate;



 
User_OKA   (2002-10-03 08:33) [9]

First_May © (02.10.02 12:55)
как раз то, что нужно!
Спасибо!



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

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

Наверх




Память: 0.46 MB
Время: 0.008 c
14-78651
Yuriy-Master
2002-10-04 14:12
2002.10.24
Menu with vertical image - how to do it


4-78732
Patrick
2002-09-10 08:39
2002.10.24
Использование MAPISendMail


14-78622
RV
2002-09-30 17:11
2002.10.24
а говорили, по радио, сегодня день Интернета


1-78505
Alex_12
2002-10-13 17:10
2002.10.24
Про StringGrid


3-78214
lak_b
2002-10-04 14:49
2002.10.24
:)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский