Форум: "Базы";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизLookup поле Найти похожие ветки
← →
Beginner3000 (2003-07-25 23:59) [0]имеется основная таблица
как сделать так, чтобы в DBGrid отображалось подстановочное поле
как сумма нескольких полей одной записи другой таблицы
я этот вопрос уже задавал, но ответов 0, решил перефразировать
>как лучше сделать что-то типа lookup по calculated
>в ADOTable (MSAccess на одной машине)
>в помощи сказано, что надо что-то делать с кешированием лукапа,
>но я не разобрал что
>мне надо написать банальное ФИО по имеющимся Ф,И,О
← →
sniknik (2003-07-26 00:09) [1]чегото не так не та непонятно, зачем лукап? просто соеденить поля в запросе??? банально Ф+" "+И+" "+О
← →
Beginner3000 (2003-07-26 00:24) [2]лукап чтоб в таблице под полем список значений выпадал
если делать лукап по calculated полю
список нормально выпадает а значения в поле нет и ошибка генерится
это потому что сначала идёт лукап а потом вычисление
как это обойти?
← →
sniknik (2003-07-26 01:02) [3]мне все еще не понятно, почему не > просто соеденить поля в запросе???
← →
Beginner3000 (2003-07-26 01:05) [4]дубль 2
как по этому полю в гриде делать выпадающий список?
← →
sniknik (2003-07-26 01:30) [5]а как счас делаеш? в технологии ничего не меняется.
← →
Beginner3000 (2003-07-26 01:58) [6]до этого делал через адотэйбл без запроса
добавлял лукап поле
как это с запросом сделать?
и чёто у меня подозрения, что редактироваться ничего не будет
запрос ведь только на получение записи
← →
Beginner3000 (2003-07-26 02:05) [7]список опять же откуда получать?
если через запрос делать
← →
sniknik (2003-07-26 03:16) [8]> и чёто у меня подозрения, что редактироваться ничего не будет
логичное подозрение, но не потому что запрос а потому что запрос неживой получится если поля из разных таблиц, составные.
а ты ждеш что calculated поле будет редактируемое? жестоко ошибаешся в этом случае.
и вот только теперь, когда упомянуто про редактирование начинаю понимать "проблему" и при чем здесь "кеширование лукапа". видать тебе посоветовали собирать твой лукап (данные) в каком нибудь не db компоненте (TComboBox), а обработку редактирования взять на себя (запрограммировать).
(а заодно понял и почему никто не отвечал, учитывая сколько времени ушло на выяснение элементарной вещи)
может соберешся духом и всетаки попробуеш изложить задачу? но только не абстрактно а по "полочкам", исходные данные и чего хочеш в итоге.
> список опять же откуда получать?
> если через запрос делать
из поля которое получится в результате операции Ф+" "+И+" "+О.
← →
Beginner3000 (2003-07-26 03:42) [9]никто мне ничего ещё не советовал :(
по порядку:
редактируемым будет числовое поле в основной таблице, соответствующее
ключу таблицы со списком сотрудников
сейчас там подстановочным полем одна фамилия и это вроде работает
нужно ФИО
чтобы работало так же (естественно через другой механизм)
принудительно загонять куда-либо список желания нет
тем более если в таблице списка сотрудников сделать калкул-д поле
список есть, но значения полю в гриде не присваиваются
(по третьему кругу пошёл)
хочу чтоб всё работало элементарно через базу данных
подозреваю нужно назначить полю запросы по событиям
но какие запросы?
и по каким событиям?
на счёт кэширования F1 по lookup fields
← →
Igor2003 (2003-07-26 13:05) [10]если работаеш с базами даных есть еще один из вариантов
создаем функцию в базе которая бы выдергивала ФИО
например
create or replace function F_FIO(Mytabn number) return varchar2 is
Result varchar2(200);
begin
select distinct FAMILE||" "||IM||" "||BAT FIO
into result
from ( Result) если работаеш с базами даных есть еще один из вариантов
создаем функцию в базе которая бы выдергивала ФИО
например
create or replace function F_FIO(Mytabn number) return varchar2 is
Result varchar2(200);
begin
select distinct FAMILE||" "||IM||" "||BAT FIO
into result
from kart a
where a.tabn=Mytabn;
return(Result);
EXCEPTION
WHEN NO_DATA_FOUND THEN RETURN "-";
END;
а потом в запросе используем эту функцию
например
select a.tabn,f_fio(a.tabn),suma
from table1 a;
Использование функций очень удобно для других запросов
потому что уже создана заготовка, которая выдергивает
уже готовый результат
Так я делаю в оракле
← →
sniknik (2003-07-26 13:51) [11]Igor2003 (26.07.03 13:05)
нет в Access пользовательских функций, так что это не пройдет. (вернее в Access как раз есть, в программе Access, но разве они тут нужны?)
Beginner3000 (26.07.03 03:42)
> по порядку: ...
не просил по по порядку просил подробно по "полочкам".
> чтобы работало так же (естественно через другой механизм)
> принудительно загонять куда-либо список желания нет
тогда оставь это дело, или поменяй чегонибудь базу/структуру таблиц.
по событиям можут и удастся но это будет еще сложней (как мне кажется)
> и по каким событиям?
а ты посмотри какие есть.
> (по третьему кругу пошёл)
ну пока ты ничего нового не сообщил повторил то же самое, и что уже выяснили. так можеш хоть еще 20 раз повторить.
(на обшие вопросы будут только обшие ответы)
← →
Beginner3000 (2003-07-27 02:50) [12]спасибо Igor2003
придётся переходить на другую базу данных
с хранимыми процедурами
← →
kaif (2003-07-27 03:41) [13]А что в Access нельзя конкатенацию строк в запросе делать?
типа:
select ID, Fam||" "||Imya||" "||Otch
from table1
???????????
К тому же мне непонятно, почему нельзя Имя, фамилию и отчество в одном поле держать. Если этих товарищей мало (десятки), то ИМХО только так и надо их держать (в одном поле ФИО). А если их много (тысячи товарищей), то неправильно в лукапах потом их искать (не найдешь просто и без мата).
← →
Beginner3000 (2003-07-27 04:28) [14]2 kaif
про конкатенацию уже разговор был
не могу выпадающий список организовать
(народу мало)
в разных полях, чтоб склонять можно было
и инициалы получать
С другой стороны, функция - одно поле
фио - тоже поле
может, правда, поля не пожалеть лишнего?
но нерасиво это както информацию дублировать
← →
ShuraGrp (2003-07-28 11:31) [15]В Lookup перечисли поля через ;, т.е. Ф;И;М и должно получиться.
← →
Beginner3000 (2003-07-28 23:10) [16]спасибо kaif
вначале я не допетрил
нужно формировать запрос в подстановочном датасете
по конкатенации литературы так и не нашёл
по архиву понял -
в адо вместо || надо + писать
всё работает
← →
sniknik (2003-07-29 00:40) [17]Beginner3000 (28.07.03 23:10)
какой же ты тугодум однако.
перечитай мой первый пост sniknik © (26.07.03 00:09), еще раз в свете последних "откровений", что "надо + писать".
(а также и остальные)
← →
Beginner3000 (2003-07-29 01:01) [18]я просто писал запрос в основном датасете,
а не в подстановочном
но всё равно и тебе спасибо
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c