Форум: "Потрепаться";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизТак значить в 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c