Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-68568
Алексей Глеб
2003-06-08 19:04
2003.08.21
Интерфейс


6-68437
tytus
2003-06-17 09:48
2003.08.21
Сетевая карта


1-68257
kull
2003-08-06 10:04
2003.08.21
Работа с интерфейсами...


1-68351
Ned
2003-08-08 10:53
2003.08.21
Create и запуск формы, по наименованию типа


1-68295
Still Swamp
2003-08-06 16:29
2003.08.21
Выгрузить на диск





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