Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 406

/ вопрос открыт /

Здравствуйте!
Как программно прописать так что бы при нажатии кнопки из DBLookupComboBox удалялось значение и сохранялось пустое значение?
прописал на кнопку DBLookupComboBox3.KeyValue:=Null; но значение только удаляется, но потом заново появляется, как сохранять пустое значение?
DBLookupComboBox соеденён с БД, может проблема в том что оно удаляется из DBLookupComboBox, но остаётся в БД?

strannik23 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: strannik23 (статус: Посетитель)
Вопрос отправлен: 13 июня 2011, 21:44
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: corban

Здравствуйте, strannik23!
DBLookupComboBox это такая фигня, которая данные из одного набора данных сопоставляет с данными из другого набора, удалять чтолибо из него напрямую нереально. Для этого надо удалять записи из обоих наборов данных, иначе в основной таблице появятся поля не сопоставимые с дочерней, судя по всему ты просто хочешь заменить данные пустой строкой, тогда только так:

DBLookupComboBox3.ListSource.Enabled:=false;
DBLookupComboBox3.ListSource.DataSet.Edit;
DBLookupComboBox3.ListSource.DataSet.FieldByName(DBLookupComboBox3.ListField).AsString:='';
DBLookupComboBox3.ListSource.DataSet.Post;
DBLookupComboBox3.ListSource.Enabled:=true;

Ответ отправил: corban (статус: 2-ой класс)
Время отправки: 15 июня 2011, 14:23

Ответ #2. Отвечает эксперт: ArtGal

Здравствуйте, strannik23!
Вопрос поставлен не корректно.
Какая БД, структура таблиц?
Если нужно удалить запись из некой таблицы, то причем здесь DBLookupComboBox?

Пример:
delete from ChildTable ChT -- дочерняя таблица
where ChT.[поле] = :[параметр]
-- скорее всего поле используемое для связи
-- дочерней и родительской таблиц.
-- Параметр - значение кей валуе DBLookupComboBox'a

Ответ отправил: ArtGal (статус: 1-ый класс)
Время отправки: 21 июня 2011, 17:40


Мини-форум вопроса

Всего сообщений: 14; последнее сообщение — 21 июня 2011, 17:41; участников в обсуждении: 4.
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 22:06 [#1]:

Проблема как раз в том, что значение остаётся в БД.
Кстати KeyValue какого типа?
Чисти код! Чисти код! Чисти код!
strannik23

strannik23 (статус: Посетитель), 13 июня 2011, 22:09 [#2]:

подскажи как удалить значение из БД
strannik23

strannik23 (статус: Посетитель), 13 июня 2011, 22:34 [#3]:

кто нибудь может помочь?
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 22:53 [#4]:

Ты специально игнорируешь мои вторые вопросы?
KeyValue какого типа?
Чисти код! Чисти код! Чисти код!
strannik23

strannik23 (статус: Посетитель), 13 июня 2011, 22:53 [#5]:

текстовый
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 22:56 [#6]:

Тогда почему null. Не = ''?
Сейчас разберусь как удалять из базы.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 22:58 [#7]:

Попробуй менять ListField и KeyField
Чисти код! Чисти код! Чисти код!
strannik23

strannik23 (статус: Посетитель), 13 июня 2011, 23:02 [#8]:

так нельзя
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 23:03 [#9]:

Тогда извиняй, я вообще с базами не работаю.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 13 июня 2011, 23:08 [#10]:

И можешь не ждать, до завтра врятли кто ответит.
Чисти код! Чисти код! Чисти код!

13 июня 2011, 23:46: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Программирование баз данных (БД) модератором Ерёмин А.А.

Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 июня 2011, 06:06 [#11]:

Цитата (strannik23):

подскажи как удалить значение из БД

какая БД? какая структура таблиц? какие компоненты используются для доступа к БД? в какой таблице должно удаляться значение?
strannik23

strannik23 (статус: Посетитель), 14 июня 2011, 07:33 [#12]:

данные храняться в компоненте TADOTable, храниться текстовое значение, DBLookupComboBox береёт данные из одной таблицы и передают их в другую
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 июня 2011, 17:02 [#13]:

данные не могут храниться в TADOTable - это компонент для доступа к данным, а не для их хранения. В какой таблице надо удалять значение - в первой (из которой берется значение) или из второй (куда передается) ? Какая структура таблиц? Какая БД?
ArtGal

ArtGal (статус: 1-ый класс), 21 июня 2011, 17:41 [#14]:

Вопрос поставлен не корректно.
Какая БД, структура таблиц?
Если нужно удалить запись из некой таблицы, то причем здесь DBLookupComboBox?

Пример:
delete from ChildTable ChT -- дочерняя таблица
where ChT.[поле] = :[параметр]
-- скорее всего поле используемое для связи
-- дочерней и родительской таблиц.
-- Параметр - значение кей валуе DBLookupComboBox'a

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.03 сек.