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

Вниз

Еще одно поле в Query   Найти похожие ветки 

 
Val ©   (2002-03-14 14:20) [0]

Подскажите пожалуйста, возможно ли к Query, со статическим SQL и созданным набором полей, динамически добавить поле типа fkData?


 
Johnmen ©   (2002-03-14 14:23) [1]

рой здесь :
Query.Fields.Add...


 
roottim   (2002-03-14 14:27) [2]

и какя дата туда писаться то будет?!!!...
что-то смутно это себе представляю


 
Val ©   (2002-03-14 14:28) [3]

Я почему, собственно спрашиваю-потому что вот так-не выходит-вылетает ошибка о несуществующем поле, используя вычисляемые, либо лукап-все путём.

QueryPositions.Close;
FD := TDateTimeField.Create(Self);
FD.FieldName := "DateInsert";
FD.DisplayLabel:="Дата оприх.";
FD.Name := QueryPositions.Name + FD.FieldName;
FD.Index := QueryPositions.FieldCount;
FD.FieldKind:=fkData;
FD.DataSet := QueryPositions;
FD.DisplayFormat := "dd.mm.yyyy";
QueryPositions.FieldDefs.UpDate;
QueryPositions.Open;



 
Val ©   (2002-03-14 14:32) [4]

у меня есть 2 квери-один(позиции)-статический и второй динамический.
И у меня происходит заполнение первого квери из второго, и вот при формировании некоторого запроса во втором, я хотел бы сформировать динамически некоторые поля в первом квери, например ту же дату.


 
Johnmen ©   (2002-03-14 14:36) [5]

>roottim : подучи синтаксис...а потом задавай всякие <?!!!>





 
roottim   (2002-03-14 14:39) [6]

всеравно непонятно зачем fkData... это св-во указывает на то что поле находится в НД DataSet... НД статичен... то биш кроме как поля НД, нового поля не создать...
а калкулятовские поля почему неподходят?...


 
roottim   (2002-03-14 14:42) [7]

2Johnmen © (14.03.02 14:36)
дата в см fkData!... ненадо все буквально пинимать!...


 
Johnmen ©   (2002-03-14 14:48) [8]

>roottim : хорошо, не буду. не надо обижаться.
>Val © :

cначала
F : TDateTimeField;

потом догадаешься сам...



 
Val ©   (2002-03-14 14:49) [9]

Вычисляемые не подходят потому что вычисления происходят на основе динамического квери, так? То есть никаких вычислений собственно и нет, а просто присваивание.
Но, допустим, я добавил позиции материала-все хорошо, но вот я формирую второй такой же запрос но к другому материалу-и всё, в статическом квери вычисляемые поля для результатов предыдущего запроса пропали, так как в новом их уже нет.


 
Val ©   (2002-03-14 14:51) [10]

>Johnmen © (14.03.02 14:48)
спасибо, FD-именно такого типа :) я просто не привел описание, думал это понятно.


 
Natalishka ©   (2002-03-14 14:52) [11]

я делаю так
на компоненту Query жму
левой кнопкой мыши там захожу в Fields Editor
там можно и создавать (так же вычесяемые поля)и удалять переименовываь!


 
Johnmen ©   (2002-03-14 14:54) [12]

м.б.
FD := F.Create(Self); ?

Я это все уже делал, да только давно - подзабыл....





 
Johnmen ©   (2002-03-14 15:00) [13]

Приношу свои извинения, и rottim тоже !
Ну конечно же ! НЕВОЗМОЖНО добавить поле, если оно не будет связано с реальным !

А фокусы с добавлением поля проходят с НД, не связанными ни с какими реальными таблицами или запросами !


 
Val ©   (2002-03-14 15:10) [14]

Ок :), я тормознул с fkData, так как это поле должно быть из реальной таблицы. Но, смотрим-fkInternalCalc-вроде как раз-то что надо - и вычисляемое и в наборе данных сохраняется,но..та же история-ошибка-поле не найдено :(


 
Johnmen ©   (2002-03-14 15:18) [15]

Ты скажи, а зачем тебе вообще это надо ?
М.б.решить твои проблемы по-другому ?


 
Lord Warlock ©   (2002-03-14 15:28) [16]

Ну вы все даете...

Val: У тебя никогда не получится работать с полями типа
fkData, fkInternalCalc , если они не связаны с
реальным полем в БД
Если внимательно читал хелп, fkInternalCalc - то же что
и fkCalculated, но данные после расчета хранятся в БД, для
чего опять та-ки нужно поле.

Так что ответ на твой вопрос - создать можно, но работать
не будет

а если хочешь динамически создать поле именно в БД, пользуй
SML


 
Johnmen ©   (2002-03-14 15:33) [17]

>Lord Warlock © : И что же мы даем и кому ? :)


 
Lord Warlock ©   (2002-03-14 15:33) [18]

Извиняюсь, не SML, a DDL - Data Definition Language
все таки под вечер клинит...


 
roottim   (2002-03-14 15:43) [19]

к вопросу " нет такого поля"
а где оно прикручивается... Self у тебя на что указывает?


 
Val ©   (2002-03-14 15:44) [20]

>Lord Warlock © (14.03.02 15:28)
вроде бы внимательно читал, но дело в том, что если про fkData, написано, что поле этого типа физически находится в БД, то про fkInternalCalc, написано о наборе данных(так ведь переводится dataset? ;)) вот я и подумал о наборе данных, который возвратил Query.


 
Val ©   (2002-03-14 15:56) [21]

>roottim (14.03.02 15:43)
прикручивается оно в .DataSet;


 
roottim   (2002-03-14 16:07) [22]

а ADD... тоже самое
калк.. -то поле должно прицепиться.. тут то вроде вопроса нет!...


 
Val ©   (2002-03-14 16:16) [23]

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


 
roottim   (2002-03-14 16:26) [24]

все ясно!
то биш прицепилось... просто вроде как вылезало "филд не найден"...
блин трудно понять что там происходит с кверями...
кусочек кода где там добавляется и т.подобные вещи происходят


 
Val ©   (2002-03-14 16:44) [25]

Я выше говорил, что добавить поле fkCalculated,fkLookup-нет проблем, мне просто негде хранить значения этого нового поля из прошлого запроса.
Код его создания в у меня программе один в один. В OnCalcField:
if QueryPositions.FindField("DateInsert")<>nil then
QueryPositions.FieldByName("DateInsert").AsString:=Query.FieldByName("DateInsert").AsString;


Попробую пояснить получше суть задачи: QueryPositions-контейнер для позиций материалов, т.е. я выбираю материалы, с помощью Query,-> в QueryPositions(пробегаюсь в цикле по Query и добавляю записи в QueryPositions), и дальше идет работа уже с ним...
Так вот: в Query я выбираю также и дату оприходования, но такого поля нет в QueryPositions, поэтому его нужно как-то добавить хотя бы для отображения.


 
Johnmen ©   (2002-03-14 17:00) [26]

А зачем вообще нужен QueryPositions (по сути) ???


 
Val ©   (2002-03-14 17:06) [27]

Контейнер выбранных материалов, для занесения их в документы. То есть выбрал я водку -нажал кнопку-запрос в Query-получил 3 записи, затем сочку захотелось, выбрал сок -нажал кнопку-сработал Query - 2 записи сока - итого в QueryPositions и выпивон и закусон :))


 
roottim   (2002-03-14 17:24) [28]

бообщем некоторый буфер... ясно!
да я сейчас посмотрел сам с этим полем.! он действительно по всем полям пробегает при добавлении строки!.. увы видно нельзя :)...
вот чего хотел спросить... ты что используеш для коннекта?

я у себя смотрю(ODAC).. есть такая штука ка виртуальная таблица в памяти... и пример даже с ней есть!...

если через BDE то у Rx тоже есть... тока я с ними не работал..

или просто можно в твоей буферной таблице добавить пару(навсякий) VARCHAR2 полей... и кода они нужны то туда кидать туда AsStrig из твоей выборки...


 
Johnmen ©   (2002-03-14 17:29) [29]

RxMemoryData


 
Val ©   (2002-03-14 17:33) [30]

Через BDE коннект.
Дело в том, что это не моя вольная разработка, а коммерческий проект, думаю дальше пояснять не надо. Просто, думалось можно приделать вот так просто :), ладно, будем мыслить дальше, спасибо всем :)


 
Lord Warlock ©   (2002-03-18 14:14) [31]

Val: или я чего-то недопонял, или ты описал задачу классического LookUp-а?


 
Val ©   (2002-03-18 14:25) [32]

если бы :)



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

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

Наверх




Память: 0.54 MB
Время: 0.013 c
7-22858
Zevsus
2002-01-15 20:45
2002.04.08
копирование файлов в фоне


3-22520
Андре
2002-03-01 15:29
2002.04.08
Select ... INTO ....


3-22577
Вика
2002-03-15 13:06
2002.04.08
Автофильтр в Excel


3-22574
Quaker
2002-03-15 11:55
2002.04.08
TDBGRID, TDBEDIT, Редактирование таблиц


14-22844
Zool
2002-02-22 17:08
2002.04.08
Читаем файл...