Главная страница
    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.57 MB
Время: 0.039 c
3-78243
Oleon
2002-09-30 12:22
2002.10.24
Здраствуйте. Как считать установленный в BDE LangDriver?


6-78554
Oduvan
2002-08-22 09:50
2002.10.24
Как перевести вот такие строчки в читаемый вид?


3-78240
Veronika
2002-10-01 09:30
2002.10.24
В IB 5.6 был wisql32, куда он подевался в IB 6 ??


1-78412
саша
2002-10-15 09:51
2002.10.24
как сделать чтобы программу небыло видно на панели задач?


14-78619
VictorT
2002-10-03 13:07
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский