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

Вниз

Опять о DBGrid и выпадающем списке   Найти похожие ветки 

 
Thor234   (2008-11-14 18:23) [0]

Добрый вечер мастера.
Перечитал кучу факов, делаю все как в этом факе

Итак, есть две таблицы, одна из них содержит ссылку (числовой ID)
на вторую, где есть текствое описание чего-либо. Допустим - это таблица
человек и его специальность.
Наша цель - сделать так, чтобы при вводе/редактировании ФИО человека итд
в DBGrid из выпадающего списка можно было выбрать специальность.
Таблица человек --> Table1
Таблица специальности --> Table2
Путь решения - создание Lookup поля в Table1. Этапы
1. Вызываем редактор полей Table1, Click мышой
2. В редакторе полей правой кнопкой и New Field -> видим диалог
3. В диалоге
Name --> Profession (или как Вы его обзовете)
Type --> String
Size --> длина наименования профессии в Table2
FieldType --> Lookup
KeyFields --> имя числового поля Table1, в которое связывает нас с
Table2 (например prof_id)
Data set --> откуда мы будем брать строки описания, т.е Table2 Looku pKeys --> Ключевое поле Table2
ResultField --> наименование профессии из Table2
Жмем ОК
Теперь в DBGrid для Table1 данное поле будет содержать выпадающий список
с профессиями из Table2

В результате записям о человеке из таблицы1 верно соответствуют записи о проффессии из таблицы2, это то все верно, НО я не получаю выпадающего списка как должно быть, а получаю просто поля, хотя ведь выставляю, что поле должно быть Loockup
Использую IBDatabase, IBQuery, DataSource и DBGrid, СУБД FireBird
Помогите пожалуйста разобраться


 
sniknik ©   (2008-11-14 19:14) [1]

> НО я не получаю выпадающего списка как должно быть,
> а получаю просто поля, хотя ведь выставляю, что поле должно быть Loockup
а где смотришь? программу надо выполнить (т.е. не в режиме дизайна) и смотреть при редактирования поля, т.е. кликнуть на него мышкой или выделить и нажать ентер.

по описанию все правильно, и раз поле с профессией соответствует значит название верно "подтянулось" из второй таблицы, а раз так то и остальное должно работать.


 
Thor234   (2008-11-14 19:20) [2]

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


 
sniknik ©   (2008-11-14 19:24) [3]

может поставил полю readonly? или рекордсет получился "неживым"/не редактируемым, и тогда, не входя в редактирование, ты просто не можешь увидеть лукап в действии...


 
Thor234   (2008-11-14 19:32) [4]

sniknik
Проверил ридонли стоит False - отпадает
"или рекордсет получился "неживым"/не редактируемым" - а вот тут можно поподробней пожалуйста, что-то не понял как это проверить и что смотреть...


 
sniknik ©   (2008-11-14 19:38) [5]

проверить, попробуй другие поля по редактировать, результат сохраняется? если закрыть/открыть программу будут уже новые значения?
проверять лучше то поле которое у редактируется лукапом в таблице один, т.е.
> KeyFields --> имя числового поля Table1
его руками если оно рядом с лукапным в гриде стоит можешь изменить?
нет смысла если у тебя другие поля редактируемые а это нет.


 
Thor234   (2008-11-14 20:00) [6]

и действительно не одно поле я отредактировать не могу хотя записи выделяются и свойство DBGrid dgEditing - true, однако поле не редактируется вообще...ума не приложу в чем загвоздка


 
Thor234   (2008-11-14 21:50) [7]

Ребят ну может кто сталкивался помогите плиз.
Попробовал вместо IBQuery использовать IBTable и все замечательно работает, есть выпадающий список, хотя делаю тоже самое!
Видимо дело и вправду в том, что при использовании IBQuery таблица не редактируется, как решить эту проблему?


 
AndreyV ©   (2008-11-14 22:07) [8]

> [7] Thor234   (14.11.08 21:50)

TIBDataSet


 
sniknik ©   (2008-11-14 22:20) [9]

> Ребят ну может кто сталкивался помогите плиз.
а если не сталкивался, а просто разумный человек, и догадывается в чем там может быть дело, можно помочь? ;)

ты вообще там запросы на обновления прописал? это же фича IB компонент, многими превозносящаяся как самое удобное и естественное (можно сказать интуитивно понятное. ???)...
в списке используемого
> Использую IBDatabase, IBQuery, DataSource и DBGrid, СУБД FireBird
IBUpdateSQL нет.

может тебе сразу на ibase.ru ?

> TIBDataSet
да там пофигу, имхо, это же не ADO.


 
Johnmen ©   (2008-11-14 22:39) [10]


> sniknik ©   (14.11.08 22:20) [9]

Просто аффтар залил пивом F1. Что извинительно.
Но, думается, он просто тормоз...:)


 
AndreyV ©   (2008-11-14 23:04) [11]

> [9] sniknik ©   (14.11.08 22:20)
> > TIBDataSet
> да там пофигу, имхо, это же не ADO.

Пусть сразу и пропишет в TIBDataSet без IBQuery и IBUpdateSQL.


 
Thor234   (2008-11-15 03:14) [12]

Johnmen
Вместо того, чтобы оскорблять, Вы лучше бы что-нибудь умное сказали, а если сказать нечего то лучше вообще молчать.

Всем остальным мастерам большое спасибо, во всем разобрался, очень выручили, спасибо!


 
Германн ©   (2008-11-15 03:39) [13]


> Thor234   (15.11.08 03:14) [12]

Советую идти на север, Там точно никто не помешает!



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

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

Наверх




Память: 0.5 MB
Время: 0.021 c
2-1226510112
art
2008-11-12 20:15
2008.12.21
Помогите переделать задачу из Pascal в Delphi


2-1226388398
mops
2008-11-11 10:26
2008.12.21
splashscreen


15-1224814529
Slider007
2008-10-24 06:15
2008.12.21
С днем рождения ! 24 октября 2008 пятница


15-1224588228
Kolan
2008-10-21 15:23
2008.12.21
Парсинг текста и выделение реквизитов.


10-1150811466
Smith
2006-06-20 17:51
2008.12.21
Как создать объект из dll?