Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-22769
mahortov
2002-03-27 13:58
2002.04.08
Формы из D6 в D5?


1-22731
Surprising
2002-03-26 21:22
2002.04.08
Не выделение ячейки в StringGrid


3-22549
ZDN
2002-03-15 13:04
2002.04.08
IB 5.5 на NT 4.0 SP6 переход на 5.6


3-22568
UncleRu
2002-03-06 18:06
2002.04.08
Всё тот же кэш.


1-22722
Goblinus
2002-03-26 21:18
2002.04.08
Проблема с ComboBox





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