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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 13:10   #1
Александр3
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 52
По умолчанию Проверка совпадений

Как проверить равняется ли значение combobox.text хоть одному значению из выделенной строки? Т.е я хочу добавить из комбобокс текст в таблицу, но если в этой строке уже есть данной значение чтобы не добавляло?
ComboBox1.Text=form1.DataSource1.Da taSet.FieldByName(form2.DBGrid1.Col umns.Items[DBGrid1.SelectedRows.
SelectefRows- выделенная строка . Как с помощью этого можно реализовать?
Александр3 вне форума Ответить с цитированием
Старый 06.12.2015, 13:34   #2
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

А зачем такие сложности c DataSet?
Не проще ли:
Код:
if ComboBox1.Text=form1._ВАШ QUERY или TABLE_.FieldByName('ВАШЕ ПОЛЕ').value then
//какие то действия
else
//какие то действия
_ВАШ QUERY или TABLE_ - в нем уже будет ваша выделенная строка в dbgrid

Последний раз редактировалось Stilet; 06.12.2015 в 17:46.
le7o вне форума Ответить с цитированием
Старый 06.12.2015, 14:00   #3
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Как проверить равняется ли значение combobox.text хоть одному значению из выделенной строки?
как так в выделенной строке?
come-on вне форума Ответить с цитированием
Старый 06.12.2015, 14:05   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Выделенная строка это и есть текущая запись в датасете. В нем и проверяй, примерно так, как в #2. По одному или нескольким полям, тебе виднее
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2015, 14:14   #5
Александр3
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 52
По умолчанию

вот именно FieldByName('ВАШЕ ПОЛЕ') это какое-то одно поле, а у меня их много, либо я что-то не правильно понял?

Вот мне надо чтобы проверял во всех столбцах данную строку
http://programmersforum.ru/attachmen...1&d=1449400581
Изображения
Тип файла: jpg Безымянный.jpg (13.8 Кб, 134 просмотров)

Последний раз редактировалось Аватар; 06.12.2015 в 14:20.
Александр3 вне форума Ответить с цитированием
Старый 06.12.2015, 14:18   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Или большое условие с OR или в цикле, в датасете есть свойство-массив полей Fields
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2015, 14:19   #7
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Александр3 Посмотреть сообщение
вот именно FieldByName('ВАШЕ ПОЛЕ') это какое-то одно поле, а у меня их много, либо я что-то не правильно понял?

Так Вы и напишите сюда название поля которое хотите сравнивать
FieldByName('ВАШЕ ПОЛЕ').asstring - в предыдущем ответе не верно было указано


Допустим у Вас таблица со след. полями: field1, field2, field3
Сравнивать необходимо по полю field2...

Код:
...
if combobox1.text = form1.adotable1.fieldbyname('field2').asstring then
showmessage('Поле '+ form1.adotable1.fieldbyname('field2').asstring + 'уже есть в базе данных')
else
form1.adotable1.post;
...

Последний раз редактировалось le7o; 06.12.2015 в 14:23.
le7o вне форума Ответить с цитированием
Старый 06.12.2015, 14:21   #8
Александр3
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 52
По умолчанию

Не подскажите как это реализовать или как должно это работать? Что-то понять не могу

у меня может быть сотни столбцов, и данный текст должен сравниваться с каждым столбцом, а не с каким-то одним

Возможно я реально тупой, но что делать, если во втором поле у меня пусто. а 3 и 1 совпадают? Про каждое расписывать? И снова же, а если 100 полей то тогда что

Последний раз редактировалось Аватар; 06.12.2015 в 14:33.
Александр3 вне форума Ответить с цитированием
Старый 06.12.2015, 14:29   #9
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Может Вы приведете структуру таблицы, то что Вы пишите не совсем понятно.
le7o вне форума Ответить с цитированием
Старый 06.12.2015, 14:30   #10
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Вы что то не то делаете.
Такие справичники лучше делать в 2 таблицы.
А потм просто поиском делают, ну и + верхний нижний регистр не играет роли.
come-on вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений в диапазоне и поставление значения соседней от совпавшей ячейки, Поиск совпадений в диапазоне ANshag Microsoft Office Excel 3 08.09.2015 16:35
Поиск совпадений. riniks17 Microsoft Office Excel 14 23.12.2012 19:57
Поиск совпадений KillJoy Паскаль, Turbo Pascal, PascalABC.NET 2 05.09.2011 11:53
Поиск совпадений Серёга0629 Microsoft Office Excel 9 29.08.2011 09:22
Поиск совпадений Claster Общие вопросы Delphi 4 22.06.2011 17:34