Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

Так значить в Delphi нельзя добавить lookup поле у dataset в   Найти похожие ветки 

 
Вован   (2003-07-07 16:14) [0]

runtime?! Это еще раз доказывает что, delphi гиморой.


 
Pat ©   (2003-07-07 16:25) [1]

Ты просто не умеешь их готовить © реклама

>Это еще раз доказывает что,
Ты просто не умеешь их готовить

Ведь как-то программисты Borland"а смогли это сделать :)


 
Вован   (2003-07-07 16:29) [2]

>>Ведь как-то программисты Borland"а смогли это сделать :)

Тыкни а то не вижу


 
Anatoly Podgoretsky ©   (2003-07-07 16:35) [3]

Это ты ткни правой кнопкой мыши.


 
Вован   (2003-07-07 16:39) [4]

Зачем?


 
Smashich ©   (2003-07-07 16:39) [5]

Вован (07.07.03 16:14)

раз не нравиться - чего пришел то?. может сначала разобраться? или не париться и не парить, а юзать то что нравиться?


 
Вован   (2003-07-07 16:45) [6]

Я просто хочу понять как это сделать.


 
passm ©   (2003-07-07 16:48) [7]

Я стою на асфальте,
Ноги в лыжи обуты
...
:)

Delphi не без "грехов", но указанной выше болезнью не страдает.


 
Smashich ©   (2003-07-07 16:49) [8]

а ты как делаешь?


 
Stas ©   (2003-07-07 16:54) [9]

Не нравится стандарнтный компонент - свой напиши.


 
Вован   (2003-07-07 16:56) [10]

Я уже повсякому делал, всего не покажеш, остановился на этом:



F:=TStringField.Create(Table);
F.FieldKind:=fkLookup;
F.Lookup:=true;
F.LookupKeyFields:="ID";
F.LookupResultField:="NAME";
F.KeyFields:="IDCOMP";
F.FieldName:="COMP";
F.LookupDataSet:=CompTable;
F.DataSet:=Table;
Table.Open;



При выполнении Table.Open пишет что поле "IDCOMP" не найдено.
Я прошел пошагово и оказалось что, в InternalOpen вызывается BindFields в котором идет цикл по FFields в котором на тот момент только одно поле которое я создал динамически, затем вызывается функция проверки правильности поля и обнаруживыется что поля "IDCOMP" в self нет. И выкидывается исключение что поле "IDCOMP" не найденно


 
Smashich ©   (2003-07-07 16:57) [11]

одного не пойму. уже третью ветку г. Вован создает. на одну и ту же тему. не надоело? А в одной нельзя?


 
Вован   (2003-07-07 16:58) [12]

Все такие умные, как будто сдесь конкурс остряков а не форум в который обращаются что-бы получить помощь или самому помочь.


 
koks ©   (2003-07-07 16:58) [13]

ну начался базар....
Вообще стремно ругать продукт на форуме, который весь ему посвящен...


 
Вован   (2003-07-07 17:07) [14]

Я хочу одного. Узнать можно ли делать то что я пытаюсь сделать если нет то нет. А не выслушивать про всякие "лыжи".

>>Вообще стремно ругать продукт на форуме, который весь ему посвящен...
Я конечно имел ввиду ни вцелом весь делфи а именно реализацию TDataSet, уж очень она монстроватая и неправильная.


 
McSimm ©   (2003-07-07 17:21) [15]

Пошел вопрос по назначению :)


 
Anatoly Podgoretsky ©   (2003-07-07 21:14) [16]

Да не мучайся ты сделай мышкой поле, а потом посмотри .dfm файл


 
panov ©   (2003-07-07 21:21) [17]

"Просто кто-то слишком много ест..." (C Кролик)


 
Ученик ©   (2003-07-07 21:28) [18]

type
TDataSetAccess = class(TDataSet);

procedure CreateDataSetFields(ADataSet: TDataSet);
begin
with ADataSet do begin
if FieldDefs.Count = 0 then
FieldDefs.Update;
if (FieldCount = 0) then
TDataSetAccess(ADataSet).CreateFields
end
end;

CreateDataSetFields(Table);
...


 
kaif ©   (2003-07-07 21:36) [19]

Я не понимаю, ты хочешь во что бы то ни стало создать lookup -поле, но поле, с которым это lookup будет работать создавать не хочешь. Причем, как я вижу, ни в рантайме, ни в дизайн-тайме.
Так не пойдет. Или если уж приспичило ни в каком случае не создавать поля DataSet-а, а ждать, пока он их сам создаст, то запихай весь свой этот код в AfterOpen датасета, а в AfterClose запихай DataSet.FieldByName("this_shit_field").Free;


 
Вован   (2003-07-07 22:03) [20]

2Ученик
А как это потом применить?

2kaif
>>Я не понимаю, ты хочешь во что бы то ни стало создать lookup
>>-поле, но поле, с которым это lookup будет работать создавать не
>>хочешь. Причем, как я вижу, ни в рантайме, ни в дизайн-тайме.

Я хочу но у меня не получается. Вот хоть бы один умный человек взял бы да привел пример


 
Ученик ©   (2003-07-07 22:10) [21]

>Вован (07.07.03 22:03)
CreateDataSetFields(Table);
F:=TStringField.Create(Table);
F.FieldKind:=fkLookup;
F.Lookup:=true;
F.LookupKeyFields:="ID";
F.LookupResultField:="NAME";
F.KeyFields:="IDCOMP";
F.FieldName:="COMP";
F.LookupDataSet:=CompTable;
F.DataSet:=Table;
Table.Open;


 
Вован   (2003-07-08 13:22) [22]

2Ученик


СУПЕР!!! ВСЕ ЗАРАБОТАЛО!!!
ХОТЬ КТО-ТО ЗДЕСЬ МАСТЕРОМ ОКАЗАЛСЯ
БОЛЬШОЕ СПАСИБО, АТО Я УЖЕ ПОТЕРЯЛ ВСЯКУЮ НАДЕЖДУ
ПРЕДЛАГАЮ ЭТО ЗАНЕСТИ В FAQ
КТО-ТО ТУТ ГОВОРИЛ ЧТО, ПРОМУЧАВШИСЬ С ЭТИМ ТАК И БРОСИЛ


 
Dmitriy O. ©   (2003-07-08 13:34) [23]

Да впечетляет. Не понял зачем все это нужно но раз так сложно добавил вопрос в FAQ"er вдруг понадобится :))



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

Текущий архив: 2003.07.24;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.014 c
14-78146
АлексейК
2003-07-09 07:36
2003.07.24
Похоже в ошибке о наличии у Ирака ОМП виновата Нигерия...


14-78042
MetalFan
2003-07-09 10:44
2003.07.24
название Delphi


3-77793
Empleado
2003-07-01 16:38
2003.07.24
ADO и Treading Model (в Мидасе)


7-78169
Xeon
2003-05-16 07:43
2003.07.24
Каталоги (папки, директории)


1-77823
Bless
2003-07-09 15:59
2003.07.24
Редактор свойств