Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
1

Как правильно сравнивать строки с числами?

06.07.2016, 09:19. Просмотров 945. Ответов 12
Метки нет (Все метки)

Здравствуйте!
Первичный ключ в access, строка, содержащая число из 20 знаков. Как правильно её сравнить с вводимым числом в DBEdit1.Text?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 09:19
Ответы с готовыми решениями:

Как правильно сравнивать строки?
Добрый день! У меня возникла такая проблема. Не могу понять в чем дело. Имеется очень...

Как правильно сравнивать строки
есть проверка типа if(!textArea.getText().isEmpty()&&text1==text2) условие не выполняется ...

Как правильно сравнивать объекты?
Есть такой код поиска public ActionResult PhoneDirectory(string nameText, string...

Как правильно сравнивать даты?
$data_old - в таблице типа 'date' форматом "Y.m.d". $today = date("Y.m.d"); if($data_old =...

Как правильно сравнивать несколько строк
здравствуйте, что-то такая конструкция ошибку выдаёт, подскажите как правильно, спасибо If...

12
maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
06.07.2016, 09:21 2
Перевести число в строку и сравнить?
0
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
06.07.2016, 09:24  [ТС] 3
Нет. Есть 2 строки в каждой числа из 20 цифр. Нужно их сравнить.
0
maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
06.07.2016, 09:31 4
novi4ek_dll, А какая тогда проблема? Если я вас правильно понял..
Delphi
1
2
3
4
5
6
7
  
  s1 := '222222';
  s2 := '222222';
  if s1 = s2 then
    ShowMessage('Строки равны')
  else
    ShowMessage('Строки не равны');
0
06.07.2016, 09:31
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
07.07.2016, 06:10  [ТС] 5
maybeTM, Проблема в том, что строку нужно сравнить со столбцом в access, в котором много строк содержащих числа из 20 знаков.
0
qwertehok
2873 / 2525 / 673
Регистрация: 29.08.2013
Сообщений: 17,173
07.07.2016, 08:37 6
Лучший ответ Сообщение было отмечено novi4ek_dll как решение

Решение

Цитата Сообщение от novi4ek_dll Посмотреть сообщение
Проблема в том
что нет проблем

Delphi
1
2
3
4
5
6
7
8
9
//делаем запрос
query.sql.text:='select a from TABLE';
//выполняем его
query.open;
//обрабатываем
while not query.eof do begin
  if STROKA=query.fields[0].asString then // тут делаем что надо
  query.next
end;
1
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
07.07.2016, 09:39  [ТС] 7
qwertehok, Спасибо)
0
qwertehok
2873 / 2525 / 673
Регистрация: 29.08.2013
Сообщений: 17,173
07.07.2016, 09:46 8
Лучший ответ Сообщение было отмечено novi4ek_dll как решение

Решение

вы скажите что вам действительно нужно сделать
что бы не сравнивать построчно можно вывести только те что равны уже в запросе

Delphi
1
query.sql.text:='select a from TABLE where a='+quotedSTR(STROKA);
получите только те что равны
1
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
07.07.2016, 11:33  [ТС] 9
qwertehok, Преследуется цель проверки на уникальность вводимого через DBEdit1.Text c с данными в поле access в котором естественные ключи.
0
qwertehok
2873 / 2525 / 673
Регистрация: 29.08.2013
Сообщений: 17,173
07.07.2016, 11:37 10
зачем вводить в Эдит ключи?
0
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
07.07.2016, 15:48  [ТС] 11
qwertehok, пополнение таблицы единичными записями
0
qwertehok
2873 / 2525 / 673
Регистрация: 29.08.2013
Сообщений: 17,173
07.07.2016, 15:56 12
ключ можно сделать autoincrement и он сам будет увеличиваться
0
novi4ek_dll
1 / 1 / 0
Регистрация: 05.07.2016
Сообщений: 100
07.07.2016, 16:16  [ТС] 13
qwertehok, Да, но ситуация уникальна, естественный ключ в 20 знаков. Зачем ещё +-ом счётчик, если повторения в этом поле невозможны на уровне access, и приложение отваливается только когда пользователь ошибается при вводе уже существующего значения. Это поле носит особый смысл и на нём повязана пара принципиальных sql запросов. Нужно лишь на уровне delphi исключить ошибку повторного ввода.
0
07.07.2016, 16:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2016, 16:16

Можно ли сравнивать строковые литералы? как правильно это сделать?
надо сравнить введенный строковый литерал с одним из доступных. int main() { setlocale(0,""); ...

Как правильно хранить юникод-символы в строках, сравнивать и выводить их?
Мне нужно хранить юникод символы в строках, сравнивать и выводить их. Символы не сравниваются и...

Как сравнивать строки?
где ошибка? if ((textBox1.Text + textBox1.Text) = (textBox2.Text)) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.