Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2012, 05:45   #1
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию combobox

Подскажите как сделать что бы добавление в таблицу записи в бдлукапкомбоксе выбирать текст,а в таблицу записывался его ID. И так же при изменение что бы было записано слово и при этом же можно было выбирать другие слова которые записаны в справочнике
Defender42 вне форума Ответить с цитированием
Старый 28.09.2012, 08:13   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,881
По умолчанию

С KeyField DataField ListField ListSource как-то работаете ? Если нет - поколдуйте, если да, то надо код смотреть, что именно не идёт, если получится соберите в проект это дело и сюда киньте, а то телепатировать в БД-темах проблематично.

Ну и на будущее, если вопрос про дблукапкомбобокс, то так и пишете в заголовке темы, а не просто комбобокс.
phomm вне форума Ответить с цитированием
Старый 28.09.2012, 08:30   #3
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

в KeyField ставлю ID ListField-str ListSource-таблицу, т.е. при запуске он выдает список слов, но при добавление вылетает ошибка
Project Project1.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type(string) into type(Boolean)'. Process stopped. Use Step or Run to continue
Он пытается записать слово в строку типа longint,а надо ID
Вложения
Тип файла: rar Программа.rar (384.8 Кб, 9 просмотров)
Defender42 вне форума Ответить с цитированием
Старый 28.09.2012, 09:10   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Так у Вас типы в таблицах не совпадают: в одной строка, в другой логический. либо keyField неправильно указаны, либо таблицы так сделаны.

А толку с Вашего проекта - нуль, потому что ни к одной из форм, кроме главной, доступа я не нашел, пришлось панели в visible=true ставить.

У Вас в комбобоксе заполнены только источники списка: ListSource и ListField (ну и KeyField естественно), а куда эти значения вставлять - пустые (DataSource и DataField). У Вас это делаетс программно - и делается совершенно неправильно:

Код:
form1.AddrT.FieldValues['Fk_str'] := DBLookupComboBox1.Text;
Таким образом вы присваиваете полю, указанному в структуре таблицы как Integer, значение строки компонента DBLookupComboBox1.Text. Не смотрел, но уверен, что и в остальных случаях косяк тот же самый.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 28.09.2012 в 09:42.
Sciv вне форума Ответить с цитированием
Старый 28.09.2012, 10:23   #5
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

все с добавлением разобрался
Код:
form1.AddrT.FieldValues['Fk_str'] := form1.StrT.fieldvalues['id'] ;
там для каждого грида есть папменю,если вы не заметили
.датасоурс и датафиелд исполузуюстся для привязывания компонента к таблицы,а не таблица к компоненту(как я понимаю)
Defender42 вне форума Ответить с цитированием
Старый 28.09.2012, 13:56   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
там для каждого грида есть папменю,если вы не заметили
Сорри, действительно не заметил, приношу извинения.

Цитата:
.датасоурс и датафиелд исполузуюстся для привязывания компонента к таблицы,
Ну так а привязка какая?

ListTable+ListSource +ListField+KeyField <-> DataTable+DataField+DataSource->DBgrid
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 28.09.2012, 15:26   #7
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

для добавления я использую тока ListSource ListField KeyField,
а для изменения ListSource ListField KeyField DataFieldDataSource это все для бдлукапкомбобокса
Defender42 вне форума Ответить с цитированием
Старый 28.09.2012, 22:57   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ай-яй (это я себе)! Не в тот комбик смотрел, опять извиняюсь, вечно их путаю
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 02.10.2012, 12:33   #9
Defender42
Пользователь
 
Регистрация: 27.12.2008
Сообщений: 89
По умолчанию

А вот еще такой вопросик, при записи из справочника(sTR) в таблицу(addr) я добавляю ID(тип поля longint)
А при записи в таблицу(Ls) я выбираю адрес из таблицы(addr),можно сделать что бы при выборе из таблицы(addr) за место ID были написаны улицы из таблицы(Str)но записывались ID этих улиц в таблицу(Ls)
Defender42 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Combobox sveniki Microsoft Office Word 7 06.02.2012 05:20
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Combobox -> DBGrid -> Combobox... EXTREEM БД в Delphi 2 20.12.2010 18:19
Разделение ComboBox на 3 ComboBox-a artemavd Общие вопросы Delphi 1 21.07.2010 08:02
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45