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

Вниз

Динамически добавить поля в TQuery   Найти похожие ветки 

 
snv-soft   (2002-08-07 16:12) [0]

Мастера!!! Помогите на нижеследующий код ругается
Field "ID" has no dataset....


RxDBGrid1.DataSource:=DS_AreaTab;
Query_AreaTab.Close;

Query_AreaTab.SQL.Clear;
Query_AreaTab.SQL.ADD("SELECT ID FROM PF.AREAS_TAB WHERE AREA_TYPE >=3");
Query_AreaTab.Open;

Query_AreaTab.Fields.Clear;
Query_AreaTab.Fields.Add(TFloatField.Create(Query_AreaTab));
Query_AreaTab.Fields[0].DisplayWidth:=15;
Query_AreaTab.Fields[0].FieldKind:=fkData;
Query_AreaTab.Fields[0].FieldName:="ID";
Query_AreaTab.Fields[0].Visible:=True;
Query_AreaTab.Fields[0].Required:=True;


 
Mike Kouzmine   (2002-08-07 16:13) [1]

fkData не то, другой fk


 
snv-soft   (2002-08-07 16:32) [2]

а какой fk надо, подскажи пожалуйста!


 
Mike Kouzmine   (2002-08-07 16:36) [3]

fkCalculated не помню как пишеться. А значение присваивай в OnCalcFields. fkData - это поля физически присутствующие в таблице или в SQL запросе.


 
Val   (2002-08-07 16:38) [4]

>snv-soft © (07.08.02 16:12)
а каков смысл?


 
snv-soft   (2002-08-08 06:14) [5]

>Val©(07.08.02 16:38)
В задаче есть необходимость динамически добавлять справочники(не изменяя код проги).
Поэтому структура спровочников (поля,ширина полей,размер, SQL для справочников и тд.) хранится в отдельной таблице...
Для вызова справочника, нужно добавить в TQuery SQL запрос, создать поля, нужным образом настроить их(прочитав параметры из таблицы справочников), и связать с DBGridом...
Таким образом, все должно реализоваться через одну форму, один Грид и один Query....
----------------
Ну вот, че то пока не могу доехать где глюк...
мож кто поможет???




 
ЮЮ   (2002-08-08 06:29) [6]

Если в Запросе и в Гриде в Designе не создавать поля, то не надо будет их и в RunTime определять - все, что вернет запрос, отразится и в Гриде :-)


 
snv-soft   (2002-08-08 14:05) [7]

ЮЮ © (08.08.02 06:29)
Не все так просто....
А допустим надо будет мне добавить справочник с
полем LookUp....
Тогда его 100 пудов создавать в рунтиме придется...
если было бы все так просто, конечно я бы вообще ничего не создавал :))))


 
ЮЮ   (2002-08-09 07:15) [8]

Xорошо, пусть будет так, но тогда у тебя непорядок с последовательность действий, правда ты не указал в какой строке кода вылетает ошибка.
Полагаю следует:
1)вместо
RxDBGrid1.DataSource:=DS_AreaTab;
поставить RxDBGrid1.DataSource:=nil, а подключать после открытия запроса
2) Query_AreaTab.Open;
Query_AreaTab.Fields.Clear;...
Предлагаю сначала определить Поля, а затем открывать запрос


 
ShuraGrp   (2002-08-09 10:34) [9]

Насчет одного Query Ты возможно погорячился вполне хватит одного DataSource. Со статическими полями работать удобнее.
Может идея бредовая, но попробуй создавать поля до Open.


 
lmatveev   (2002-08-12 03:51) [10]

Я постоянно использую справочники именно по этой схеме. Ошибка действительно в последовательности действий. Сейчас точно не вспомню, но должно быть что-то в этом духе:
Query1.Close;
Query1.FieldDefs.Clear;
Query1.Fields.Clear;
Query1.SQL.Text := "SELECT ID FROM MyTabale";
with Query1.FieldDefs.AddFieldDef do begin
Name := AFieldName;
DataType := ftFloat;
Size := 0;
CreateField(Query1);
end;
Query1.Open;

Lookup-поля создаются также, но в конце указываются необходимые атрибуты:

....
AField := CreateField(Query1);
AField.FieldKind := fkLookup;
AField.LookupDataSet := Query2;
AField.KeyField := "ID";
....
end;
....


 
snv-soft   (2002-08-18 09:03) [11]

> lmatveev (12.08.02 03:51)
Спасибо, обычные поля получились...
Щас пробую Lookup-поля.



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

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

Наверх





Память: 0.46 MB
Время: 0.231 c
3-13962
drew
2002-08-16 10:43
2002.09.05
Помогите! Как осуществить поиск по заданному столбцу


7-14287
Shrek
2002-06-23 15:39
2002.09.05
Как програмно узнать шо windows хотят выгрузить.


3-13969
NIKI
2002-08-16 13:53
2002.09.05
Error creating cursor handle!


7-14304
Ильнур
2002-06-22 12:08
2002.09.05
Работа со сканером


3-13882
Gleb
2002-08-17 23:23
2002.09.05
как сохранить Jpeg в базе данной





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