Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизЕще одно поле в 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;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c