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

Вниз

LoockUp поля   Найти похожие ветки 

 
ORMADA ©   (2004-06-01 09:51) [0]

Добрый ддень!
Делаю в рантайм лукап поля и столкнулся со следующим:
если квери (TADOQuery) создать в рантайм
т.е.

with TADOQuery.creat(self) do...

и потом назначить для LookupDataSet то дельфи ругается типа неправильно заданы значеня для лукап полей.
в тоже время если где то в public/private разделе объявить

Query1: TADOQuery; и потом созадать его
Query1 := TADOQuery.Create(self);
with Query1 do..

то всё отлично работает...
Можно ли как-нить этого избежать ? т.е. избежать объявления всех переменных типа квери кот. могут быть понадобиться (т.к. в моей программе их кол-во на этапе проектирования и разработки неизвестно).


 
Anatoly Podgoretsky ©   (2004-06-01 10:00) [1]

ошибка внутри with


 
ORMADA ©   (2004-06-01 10:04) [2]

2 Anatoly Podgoretsky
Анатолий! С чего вы это решили ?

with TADOQuery.Create(self) do
begin //--- Создаём новый ADOQuery для LoockUp поля ---begin------
   Name := "TADOQuery10";
   Connection := ADOConnection1;
   SQL.Add("select * from спр1");
   Open;
end; //--- Создаём новый ADOQuery для LoockUp поля ---end---------

затем
with TStringField.Create(ADOQuery1) do
 begin
   FieldKind := fkLookup;
   FieldName := "LoockUp1";
   DataSet := ADOQuery1;
   Name := "LoockUp1";
   KeyFields := "СсылкаНаСпр1";
   LookupKeyFields := "Код";
   LookupResultField := "Имя";
   LookupDataSet :=TADOQuery(FindComponent("TADOQuery10"));
   ADOQuery1.FieldDefs.Add(name, ftString, 50);
 end;

В чём ошибка ?


 
ORMADA ©   (2004-06-01 10:54) [3]

Люююдиии! Хде вы ?
Никто с таким не сталкивался ?


 
sniknik ©   (2004-06-01 11:41) [4]

проверь значение LookupDataSet после присвоения.


 
Vlad ©   (2004-06-01 12:01) [5]


> with TStringField.Create(ADOQuery1) do

...
затем

> FindComponent("TADOQuery10");


Это тоже самое что написать StringField.FindComponent("TADOQuery10")

Ку ?


 
ORMADA ©   (2004-06-01 12:09) [6]

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


 
Vlad ©   (2004-06-01 12:20) [7]


> ORMADA ©   (01.06.04 12:09) [6]

Ты создаешь ADOQuery, у которого owner - self (то есть наверняка - форма)
Затем пытаешься найти его в списке дочерних компонент StringField

Об этом говорит конструкция:

with TStringField.Create(ADOQuery1) do
...
... FindComponent("TADOQuery10");

То есть тоже самое что так: StringField.FindComponent("TADOQuery10")

тогда уж указывай явно: Self.FindComponent("TADOQuery10");
Хотя возможно проблема и не в этом.


 
V-A-V   (2004-06-01 12:23) [8]

Слушай а зачем их извращатся в рантайме создавать, может просто в дизайнтайме их сразу нашлепать...


 
ORMADA ©   (2004-06-01 12:30) [9]

2 V-A-V панятна что можно но это родительская универсальная форма дл всех справочников от которой потом будет происходить наследование! во


 
ORMADA ©   (2004-06-01 12:37) [10]

2 Vlad СПАСИБА!
Влад ты оказался прав косяк был действительно в Self.FindComponent("TADOQuery10");
Он(с моей помощью канечна) просто не там искал компонент.
Всем СПАСИБО!


 
Vlad ©   (2004-06-01 12:42) [11]


> ORMADA ©   (01.06.04 12:37) [10]


Значит АП был прав - ошибка внутри with :-)



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

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

Наверх





Память: 0.47 MB
Время: 0.025 c
3-1086245351
stas
2004-06-03 10:49
2004.06.27
поле numeric и ADO


1-1087277819
Liinda
2004-06-15 09:36
2004.06.27
Запуск


9-1078383882
hfa_
2004-03-04 10:04
2004.06.27
Привет! В написание игр и по составлению их алгоритмов я ноль..Но


3-1085825634
Stark
2004-05-29 14:13
2004.06.27
Использование файлов БД в формате *.bdf


1-1086740941
AleKo
2004-06-09 04:29
2004.06.27
Пронумеровать строки в TDBGridEh





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