Главная страница
    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.047 c
14-1086772172
Gero
2004-06-09 13:09
2004.06.27
Вопрос по HTML: аналог cellspacing


1-1087132315
Алекс
2004-06-13 17:11
2004.06.27
Как расшифровывается lp ?


14-1086590308
Мазут Береговой
2004-06-07 10:38
2004.06.27
Хотелось бы знать ваше мнение, по одному неприятному


4-1084786682
oleg_senator
2004-05-17 13:38
2004.06.27
Работа со звуком


1-1087142108
AAAlexeyAAA
2004-06-13 19:55
2004.06.27
Компилятор насчитал 1+1=1. Почему? Привожу код:





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